使用组引用的正则表达式

问题描述 投票:0回答:1

我有一个正则表达式,但不知道它是什么意思:

>>> import re
>>> re.sub(u'(^| )'0,u'\g<1>null','0fa0a')

我希望它替换字符串的开头,否则空格将为空,但实际什么也不做。

>>> '0fa0a'

组参考指的是什么?我还没有定义组 1。 为什么不取代?

python regex
1个回答
2
投票

问题出在这里,

re.sub(u'(^| )'0,u'\g<1>null','0fa0a')
               |

0
包含在单引号内。

re.sub(u'(^| )0',u'\g<1>null','0fa0a')

输出:

u'nullfa0a'

如果您不想删除开头

0
,则不要将其包含在您的模式中。

>>> re.sub(u'(^| )',u'\g<1>null','0fa0a')
'null0fa0a'

如果你想检查开头或空格后面是否有 0,则使用前瞻,

>>> re.sub(u'(^| )(?=0)',u'\g<1>null','0fa0a')
u'null0fa0a'
© www.soinside.com 2019 - 2024. All rights reserved.