我目前正在使用 (['\"])(?:\\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有点相似。但是,我无法将其应用到我现有的正则表达式中。
谢谢,正则表达式怪胎!
最佳答案
这是一个模式:
(['"])(?:\\.|.)*?\1
一切都在(?:\\.|.)
位中:
- 匹配转义字符:
\\.
- 这可以处理\"
和\\
- 或任何其他(读取:未转义)字符:
.
- 您也可以在此处使用[^\\]
。
由于正则表达式引擎尝试从左到右交替,因此它会首先尝试匹配转义字符。
顺便说一句,在您的模式中,\1|.*?\1
是多余的,您可以只写.*?\1
。
关于python - 对引号进行分组并忽略转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29457679/