首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python regex中定义或确定类型整数

问在python regex中定义或确定类型整数
EN

Stack Overflow用户
提问于 2015-10-07 00:14:52
回答 4查看 2.2K关注 0票数 2

在Python中,捕获组的类型可以是整数吗?

假设我有以下正则表达式:

代码语言:javascript
复制
>>> import re
>>> p = re.compile('[0-9]+')
>>> re.search(p, 'abc123def').group(0)
'123'

我希望组中的'123'类型是int,因为它只能匹配整数。它感觉必须有一个更好的方法,而不是定义只匹配数字,然后必须将它转换成一个int,尽管如此。

背景是,我有一个包含多个命名捕获组的复杂正则表达式,其中一些捕获组只匹配整数。我希望这些捕获组是整数类型的。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-07 00:18:32

不,没有。您可以自己转换它,但是re对文本进行操作,并生成文本,仅此而已。

票数 7
EN

Stack Overflow用户

发布于 2015-10-07 00:52:05

不幸的是这是你所能做的最好的了。

代码语言:javascript
复制
>>> import re
>>> p = re.compile('[0-9]+')
>>> a = re.search(p, 'abc123def').group(0)
>>> a.isdigit()
True
>>> a
'123'
>>> type(a)
<class 'str'>

从if创建一个isdigit()语句,然后从那里开始。

票数 2
EN

Stack Overflow用户

发布于 2021-04-23 18:03:52

用例:从两个街道号码中取平均值。

代码语言:javascript
复制
import pandas as pd

addresses = pd.Series(["3 - 5 Mint Road", "20-23 Cinnamon Street"])

def street_number_average(capture):
    number_1 = int(capture.group(1))
    number_2 = int(capture.group(2))
    average  = round((number_1 + number_2) / 2)
    return str(average)

pattern = r'(\d\d?) *?- *?(\d\d?)'

addresses.str.replace(pattern, street_number_average)

# > 0           4 Mint Road
# > 1    22 Cinnamon Street

不要忘记在对数字执行操作后将其转换回字符串,否则它将返回一个NaN。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32981774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档