我有这个字符串:
field = 1400 x 3524
我想将这些数字放入两个单独的变量中,以便执行乘法。我是这样做的:
num1 = re.match("(d{3,4})(?= x)", field).group(1)
num2 = re.match("(?<=x )(d{3,4})", field).group(1)
我使用第一个数字,但第二个数字是NoneType
.
我做错了什么?
试试这个:
>>> import re
>>> a = 'field = 1400 x 3524'
>>> m = re.findall( r'd+', a )
>>> m
['1400', '3524']
>>>
re
模块文档中指出:
请注意,以正面的后瞻断言开头的模式 在正在搜索的字符串的开头不匹配;你会 最有可能要使用 search(( 函数而不是 match(( 功能
在您的情况下,这意味着您应该执行以下操作:
import re
field = "1400 x 3524"
num2 = re.search("(?<=x )(d{3,4})", field).group(0)
print(num2) # 3524
请注意,除了将match
更改为search
之外,我还group(1)
更改为group(0)