正则表达式以匹配转义字符(引号)
我想构建一个简单的正则表达式,以涵盖带引号的字符串,包括其中的所有转义引号。例如,
"This is valid""This is \" also \" valid"
显然,类似
"([^"]*)"
不起作用,因为它与第一个转义的引号匹配。
什么是正确的版本?
我想对于其他转义字符,答案是相同的(只需替换相应的字符)。
顺便说一句,我知道“包罗万象”的正则表达式
"(.*?)"
但我会尽量避免使用它,因为毫不奇怪,它的运行速度要比更具体的设备慢。
回答:
所有其他答案的问题是,它们只适合最初的明显测试,但不足以进行进一步审查。例如,所有答案都希望第一引号不会被转义。但最重要的是,转义比单个反斜杠要复杂得多,因为反斜杠本身可以转义。想象一下,尝试实际匹配以反斜杠结尾的字符串。那怎么可能呢?
这就是您要寻找的模式。它不假定第一个引号是有效的引号,并且它将允许转义反斜杠。
(?<!\\)(?:\\{2})*"(?:(?<!\\)(?:\\{2})*\\"|[^"])+(?<!\\)(?:\\{2})*"
以上是 正则表达式以匹配转义字符(引号) 的全部内容, 来源链接: utcz.com/qa/415440.html