括号内的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感谢解释在;),这只是一个答案!