制作参数解析器。我想将一个字符串拆分为一个分隔符为 ", "
的数组除非前面有 "|"
.这意味着字符串
"foo, ba|, r, arg"
应该导致
`["foo", "ba|, r", "arg"]`
我正在尝试使用这个正则表达式:(?<!\|),
适用于 http://regexhero.net/tester/但是当我尝试
args.split(/(?<!\|), /)
在 ruby 中,我得到一个错误:undefined (?...) sequence: /(?<!\|), /
最佳答案
Ruby 的正则表达式引擎还不支持 lookbehind。
您需要切换到 1.9 或使用 Oniguruma .
如果这不是一个选项,您可以搜索 |,
并将其替换为某种标记。说完一切后,将 |,
放回去。
你也可以试试像这样的正则表达式:
/(?:[^|]), /
但显然 (?:[^|])
不是零宽度的,这意味着您之后需要做一些额外的工作。
关于ruby - Ruby 中的正则表达式负后视似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7605615/