[英]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.