/ / Ako napísať regulárny výraz v jazyku Python, aby obsah skupiny zostal nezmenený? [duplikát] - python, regex

Ako napísať regex v Pythone, aby sa zachoval obsah skupiny nezmenený? [duplicitné] - python, regex

Snažím sa používať python na spustenie regexu na vykonanie výmeny, ako je uvedené nižšie:

a = "%I"m a sentence.|"
re.sub(r"%(.*?)|", "<1>", a)

potom b = <1>, ale chcem získať výsledok <I"m a sentences.>

Ako to mám dosiahnuť? Snažil som sa zoskupiť I"m a sentence, ale mám pocit, že som urobil niečo zle, takže výsledok nezachováva skupinu 1. Ak máte nejaké nápady, dajte mi vedieť. Vopred veľmi pekne ďakujem!

odpovede:

5 pre odpoveď č. 1

V opačnom prípade použite surový reťazec 1 bude interpretovaný ako osmičkový znakový kód, nie spätný odkaz.

A výsledok priraďte b.

b = re.sub(r"%(.*?)|", r"<1>", a)

DEMO


3 pre odpoveď č. 2

na zachytenie skupinového použitia g<1>

a = "%I"m a sentence.|"
a = re.sub(r"%(.*?)|", "<g<1>>", a)
# <I"m a sentence.>