Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python正则表达式:替换某个字符串的所有匹配项,而不是在特定字符之后_Python_Regex - Fatal编程技术网

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

在Python中,如何替换某个字符串的所有出现项,而不是在某个特定字符之后

例如,我想用前面的
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)