我re.sub()
在 Python 中遇到了一个奇怪的行为。
在一个字符串中,我想替换所有出现的情况,例如
- list 1
- list 2
使用 HTML 代码,例如
<li>list 1</li>
<li>list 2</li>
所以我用
text = re.sub('(- (?P<id>.))', '<li>\g<id></li>', text)
它工作并返回
<li>l</li>ist 1
<li>l</li>ist 2
然后我+
在正则表达式中添加以匹配整个句子(即“list 1”、“list 2”)
text = re.sub('(- (?P<id>.+))', '<li>\g<id></li>', text)
令人惊讶的是,它返回
</li>ist 1
</li>ist 2
之后的文本\g<id>
覆盖了字符串的左侧部分。
如果我尝试<li>\g<id>foo
改为返回foot 1
你们是否已经面临这种行为?我在这里缺少什么吗?
谢谢