正则表达式使用组引用

时间:2014-09-18 11:51:05

标签: python regex

我有一个正则表达式,但不知道它意味着什么

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

我希望它替换字符串的开头或空格会为null,但实际上什么都不做。

>>> '0fa0a'

小组参考是指什么?我还没有定义第1组? 为什么不替换?

由于

1 个答案:

答案 0 :(得分: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'