Python 使用组标签将正则表达式转换为字典?P<&燃气轮机;
我使用的是正则表达式模块,而不是python中的默认re模块 我试着做以下几点Python 使用组标签将正则表达式转换为字典?P<&燃气轮机;,python,regex,label,regex-group,Python,Regex,Label,Regex Group,我使用的是正则表达式模块,而不是python中的默认re模块 我试着做以下几点 >>> regex.compile('(?P<heavy>heavily|heavy)').search("My laptop is heavy or heavily").groupdict() {'heavy': 'heavy'} regex.findall将同时匹配heavy和heavy,但它不适用于组标签 我必须用正则表达式来解决这个问题,所以通过字符串迭代的解决方案是不可接受
>>> regex.compile('(?P<heavy>heavily|heavy)').search("My laptop is heavy or heavily").groupdict()
{'heavy': 'heavy'}
regex.findall将同时匹配heavy和heavy,但它不适用于组标签
我必须用正则表达式来解决这个问题,所以通过字符串迭代的解决方案是不可接受的。[你读过正则表达式上的python文档吗?][1] 相关部分: 扫描目标字符串时,从左到右尝试用“|”分隔的REs。当一个模式完全匹配时,该分支被接受。这意味着一旦A匹配,B将不会被进一步测试,即使它将产生更长的整体匹配 这意味着您的正则表达式:
(?P<heavy>heavily|heavy)
要解决您的问题,有两种解决方案
如果您希望搜索多个匹配项,我强烈建议您使用findall方法。奇怪,我希望它返回
{'heavy':['heavy','heavy']}
!请看这里:
(?P<heavy>heavily|heavy)
{"heavy": "heavy"}