正则表达式匹配引号外的所有单词?

标签 regex language-agnostic match

是否可以使用标准正则表达式解析器匹配引号外的文本?
我看过这个答案,但它是通过使用 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/

相关文章:

regex - 用于识别 If 语句的正则表达式

java - 正则表达式检测代码中的注释

mysql匹配不匹配括号中的文本

excel - 添加数据或对列表排序后维护超链接

php - 正则表达式匹配其中包含 HTML 的占位符

c++ - 如何编写 boost::spirit::qi 解析器来执行 '?' 在正则表达式中所做的事情?

language-agnostic - 游戏开发和业务开发有什么区别?

algorithm - 帮助螺旋矩阵

language-agnostic - 使用按位运算符检查整数是否为 2^1-2^j 形式的单行代码

不以 X 开头的 Python 匹配字符串