我正在尝试name\|dial_num|032\|0095\\|\\0099|\9925
使用定界符分割字符串,|
但是它将跳过\|
。我在此链接中找到了解决方案:匹配“。”的Javascript正则表达式。不能以'\'开头(替代方案的后面),但它\\|
也会跳过。
正确的结果必须是:[name\|dial_num,032\|0095\\,\\0099,\9925]
。
该规则是case\\\|
或\\\\\|
or等,|
仍然是有效的定界符,但如果case\\\\|
甚至更多,则不是。
任何帮助将不胜感激。
通常的解决方法是使用match
而不是split
:
> s = "name\\|dial_num|032\\|0095\\\\|\\\\0099|\\9925"
"name\|dial_num|032\|0095\\|\\0099|\9925"
> s.match(/(\\.|[^|])+/g)
["name\|dial_num", "032\|0095\\", "\\0099", "\9925"]
附带说明一下,即使JS确实支持lookbehinds,也不会成为解决方案,因为它(?<!\\)|
还会错误地跳过\\|
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句