Python正则表达式:替换某个字符串的所有匹配项,而不是在特定字符之后
在Python中,如何替换某个字符串的所有出现项,而不是在某个特定字符之后 例如,我想用前面的Python正则表达式:替换某个字符串的所有匹配项,而不是在特定字符之后,python,regex,Python,Regex,在Python中,如何替换某个字符串的所有出现项,而不是在某个特定字符之后 例如,我想用前面的def替换所有出现的abc而不是x。代码如下: re.sub(r'(^|[^x])abc', r'\1def', string) 如果字符串没有连续的abcs,则代码工作正常。但是,如果我有string='abcabc',代码将无法工作。有没有办法解决这个问题?使用否定断言(?(即前面没有): (? 作为替代: re.sub(r'(?<!x)abc', r'def', string) re.s
def
替换所有出现的abc
而不是x
。代码如下:
re.sub(r'(^|[^x])abc', r'\1def', string)
如果字符串没有连续的abc
s,则代码工作正常。但是,如果我有string='abcabc'
,代码将无法工作。有没有办法解决这个问题?使用否定断言(?(即前面没有):
(?
作为替代:
re.sub(r'(?<!x)abc', r'def', string)
re.sub(r'(?),带有否定断言(?(即前面没有):
(?
作为替代:
re.sub(r'(?<!x)abc', r'def', string)
result=re.sub((?result=re.sub((?result=re.sub((?)?
result = re.sub("(?<!x)abc", "def", subject)