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
次に、文全体に一致するように正規表現を追加+
します(つまり、「リスト1」、「リスト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
あなたたちはすでにこの行動に直面していましたか?私がここに欠けているものはありますか?
ありがとう