括号内的Python正则表达式
我在尝试从括号内获取一些数据时遇到了一些问题。下面是一些示例代码:括号内的Python正则表达式,python,regex,python-2.6,Python,Regex,Python 2.6,我在尝试从括号内获取一些数据时遇到了一些问题。下面是一些示例代码: import re test_string = '123a (456b)' regex_a = re.match(r'(?P<a>\d+)a', test_string) regex_b = re.match(r'(?P<b>\d+)b', test_string) print regex_a print regex_b 重新导入 测试字符串='123a(456b)' 正则表达式a=re.mat
import re
test_string = '123a (456b)'
regex_a = re.match(r'(?P<a>\d+)a', test_string)
regex_b = re.match(r'(?P<b>\d+)b', test_string)
print regex_a
print regex_b
重新导入
测试字符串='123a(456b)'
正则表达式a=re.match(r'(?P
我也在Pythex()中尝试过这一点,但在那种环境中它是有效的
我不知道发生了什么,如果您能给我提供任何帮助,我将不胜感激。如果这有什么不同的话,我将使用python 2.6。re.match()
仅匹配字符串开头的内容。请尝试re.search()
。如果要匹配括号内的数字,可以使用以下正则表达式:
\((\d+).*\)
请注意,您需要对括号进行转义,并对数字组合使用捕获分组(\d+
),还要注意re.match
,而需要使用re.search
:
>>> re.search(r'\((\d+).*\)',test_string).group(1)
'456'
如果您想查找所有数字,可以使用re.findall
:
>>> re.findall(r'\d+',test_string)
['123', '456']
尝试将(
替换为\(
和)
替换为\)
匹配从字符串开头开始。改为使用搜索
。查看此网站上的几十个(如果不是几百个)其他问题。感谢文档中的内容,但当我使用时。匹配()在过去,如果没有遇到这种情况,我质疑我编写的正则表达式,而不是我使用的函数,这并不是不合理的。然而,每天都是上学日,我不会再犯错误。创建者不想跳过括号,而是使用它们创建组,以便以后检索值。@syntonym感谢解释在;),这只是一个答案!