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