我目前正在使用(['\"])(?:\\1|.*?\\1)
捕获一组引号。你知道吗
Text: "Hello", is it 'me youre looking for'?
# result: "Hello" (\1) and 'me youre looking for' (\2)
此外,我希望它忽略这些组中的转义引号(或者全局,也可以)。你知道吗
Text: "Hello", is it 'me you\'re looking for'?
# result: "Hello" (\1) and 'me you\'re looking for' (\2)
使用python。我知道this questions有点类似。但是,我无法将其应用于现有的正则表达式。你知道吗
谢谢,regex怪胎!你知道吗
你可以使用下面的正则表达式。你知道吗
DEMO
(?<!\\)
负的lookback,断言匹配不会以反斜杠字符开头。(['"])
这将捕获未转移的单引号或双引号。(?:\\\1|(?!\1).)*
,\\\1
这将基于捕获的字符或任何字符(而不是捕获的字符)匹配转义的'
或"
引号,零次或多次。\1
引用第一个捕获的字符。在python中,您需要修改
re.findall
函数,如下所示。你知道吗这里有一个模式:
Demo
一切都在
(?:\\.|.)
位:\\.
-这同时处理\"
和\\
.
-您也可以在这里使用[^\\]
。你知道吗由于正则表达式引擎尝试从左到右的交替,它将首先尝试匹配转义字符。你知道吗
顺便说一下,在您的模式中,
\1|.*?\1
是多余的,您可以编写.*?\1
。你知道吗相关问题 更多 >
编程相关推荐