javascript - 使用正则表达式拆分字符串

标签 javascript regex

我有一个字符串,我希望它被拆分成一个数组,以便它被 '+' 拆分,除非它在括号内

例如字符串

"abc+OR+def+OR+(abc+AND+def)"

成为

["abc", "OR", "def", "OR", "(abc+AND+def)"]

和字符串

"(abc+AND+cde)+OR+(abc+AND+(cde+AND+fgh))"

成为

["(abc+AND+cde)", "OR", "(abc+AND+(cde+AND+fgh)"]

是否可以使用正则表达式来做到这一点?

最佳答案

您可以使用正则表达式执行此操作,但只能使用支持递归正则表达式的语言(例如,perl 或任何具有 PCRE 的语言)。

使用 JavaScript 正则表达式并不容易,因为它们不支持递归。 但是可以使用 XRegExp 使用附加插件:

http://xregexp.com/plugins/#matchRecursive

另请检查这两个链接:

关于javascript - 使用正则表达式拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11870820/

相关文章:

javascript - 让 moveTo 和 moveBy 在 chrome 上工作

javascript - UTF-8 编码算法如何在 8 位 block 上工作(在 JavaScript 中)?

php - 解析 TO header 中符合 RFC 822 的地址

c# - 如何查找没有特定编号的多行

javascript - 即使在客户端,是否有办法保护 React JS 中的 API key ?

javascript - 处理错误的谷歌内容关键字

javascript - javascript 可以处理的最大文件大小是多少?

java - 使用 Pattern/Matcher 是否比循环遍历字符串并查找字符更有效?

ruby - 仅使用一次 Ruby 正则表达式 gsub

regex - 使用Go删除与Yaml文件中的正则表达式匹配的行