簡體   English   中英

帶有對或字符的python re.sub()

[英]python re.sub() with pair or characters

我試圖抓住一個被“!並用”!_“替換第一個”!“的字符串。

例如:str(!test!)。strip() - > str(!_ test!)。strip()

這是我到目前為止的代碼:

print re.sub(r'!.*?!','!_', 'str(!test!).strip()')

使用此代碼我抓得太多,結果是:str(!_)。strip()

關於如何對第一個“!”進行歸零的任何想法。 或者,有沒有辦法在“!!”中抓取字符串 然后添加“!_”+“!” 那個字符串?

print re.sub(r'!(?=.*?!)', '!_', 'str(!test!).strip()')

使用積極的前瞻。

print re.sub(r'!(.*?)!', r'!_\1!', 'str(!test!).strip()')

使用反向引用。

排除! 來自!s之間的字符:使用[^!]代替.

然后,捕獲要保留的RE部分() ,並在替換字符串中,使用\\1再次插入它。

print re.sub(r'!([^!]*!)', r'!_\1', 'str(!test!).strip()')

您需要使用括號將“單詞”的后半部分分組,並在替換字符串\\g<1>使用該組。

re.sub(r'!(.*?!)', '!_\g<1>', 'str(!test!).strip()')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM