用于查找未转义字符的Python正则表达式
我需要找到一个正则表达式字符串,如果没有转义,它将(在Python中)只匹配一个字符(比如用于查找未转义字符的Python正则表达式,python,regex,Python,Regex,我需要找到一个正则表达式字符串,如果没有转义,它将(在Python中)只匹配一个字符(比如:)。如果有偶数个反斜杠相互逃逸,我也需要它来捕获反斜杠,因为我使用它来查找和替换 有一大堆问题似乎是重复的,但事实并非如此。这是因为它们要么捕获反斜杠,要么在Pythonre中不起作用 我尝试过的一些不起作用的正则表达式是(?(捕获反斜杠),(?),还有一些在Python中不起作用的正则表达式。您希望查找并替换未转义的冒号 使用 result=re.sub(r'(?newstr',text) 请参阅和
:
)。如果有偶数个反斜杠相互逃逸,我也需要它来捕获反斜杠,因为我使用它来查找和替换
有一大堆问题似乎是重复的,但事实并非如此。这是因为它们要么捕获反斜杠,要么在Pythonre
中不起作用
我尝试过的一些不起作用的正则表达式是
(?(捕获反斜杠),(?),还有一些在Python中不起作用的正则表达式。您希望查找并替换未转义的冒号
使用
result=re.sub(r'(?newstr',text)
请参阅和
详细信息
(?-不允许在当前位置之前使用反斜杠
((?:\\{2})*)
-捕获组1:0或更多双反斜杠序列
:
-冒号(替换为需要替换的任何字符/模式)
在替换中,\g
(这是\1
的一个明确版本)backreference将使用第1组模式的反斜杠放回原位。\g
更通用,因为您可以用数字/数字替换冒号,而不会出现问题
result = re.sub(r'(?<!\\)((?:\\{2})*):', r'\g<1>newstr', text)