是否可以使用标准正则表达式解析器匹配引号外的文本?
我看过这个答案,但它是通过使用 PCRE 完成的:
Can regex match all the words outside quotation marks?
由于使用 PERL,这不是一个纯粹的解决方案。我知道它也可以通过使用编程语言来解决,但想法是使用纯正则表达式解析器。
我做了这样的事情,但这不能正常工作
[^'"]*(?=(?:(['"])+(.*?\1))|([^'"]*$))
先感谢您。
UPD1 :想法是匹配引号外的任何类型的文本,解决方案必须不依赖于输入。
最佳答案
<yourtext>(?=(?:[^"]*"[^"]*")*[^"]*$)
是的,您可以使用正向预测来做到这一点。但这假设您已经平衡了
"
并且没有流浪"
躺在某处。见演示。http://regex101.com/r/sU3fA2/29
关于正则表达式匹配引号外的所有单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26609745/