python正则表达式不使用\ b求值

时间:2018-06-21 03:46:47

标签: regex python-3.x

我正在尝试对带有破折号的字符串进行简单的边界正则表达式替换,但是它们不能替换,为什么?破折号在正则表达式中意味着什么?

这是我的实际尝试,其中f是我要替换字符串完全匹配的变量:

margin: 5px 10px;

我如何获得所需的输出:

>>> import re
>>> f = "user-services-http-two user-services-http"
>>> re.sub(r'\buser-services-http\b', '32370', f)
'32370-two 32370'

我的要求是我必须使用re,因为稍后我会在代码中使用python(massedit)中的另一个模块。

2 个答案:

答案 0 :(得分:1)

import re

f = "user-services-http-two user-services-http"
re.sub('\\b(user-services-http$)', '32370', f)

已根据您上面的其他评论进行了编辑-但与PKumar相同-适用于所有情况

答案 1 :(得分:1)

您可以这样做:

re.sub(r'\buser-services-http$', '32370', f)