我正在尝试创建一个正则表达式来替换字符串的一部分。这是字符串的示例:
string = u'/nl/nl/1681/1/0/a/all/'
pattern = r'(/\w{2}/\w{2}/)(\d+)/(\d+)(/\d+/[ans]/all/)'
pattern_obj = re.compile(pattern)
该模式指定了 4 个组。如果您进行搜索,则结果如下:
m = pattern_obj.search(string)
m.group(0) -> u'/nl/nl/1681/1/0/a/all/'
m.group(1) -> u'/nl/nl/'
m.group(2) -> u'1681'
m.group(2) -> u'1'
m.group(4) -> u'/0/a/all/'
到目前为止,一切都很好。现在我指定一个替换字符串,如下所示:
replacement = r'\1' + '1000' + '/' + '20' + r'\4'
并发出以下声明:
pattern_obj.sub(replacement,string)
这导致:
u'H00/20/0/a/all/'
我期待这个:
u'/nl/nl/1000/20/0/a/all/'
我一定做错了什么,但我不知道是什么。有人可以帮帮我吗?