email|url(name1|name2)|test(name3)
这种需要按照 |
进行分割,但是只需要分割一层,比如url
里面的就不需要,该示例得到的结果是:[email,url(name1|name2),test(name3)]
。
上面只是示例,实际上可以有很多个:总的来说就是有两种元素无括号email
,有括号test(name3|name1)
,右括号内部也可以包含这两种元素 这些元素会通过|
进行分割,只需要根据最外层的|
进行分割
email|url(name1|name2)|test(name3)
这种需要按照 |
进行分割,但是只需要分割一层,比如url
里面的就不需要,该示例得到的结果是:[email,url(name1|name2),test(name3)]
。
上面只是示例,实际上可以有很多个:总的来说就是有两种元素无括号email
,有括号test(name3|name1)
,右括号内部也可以包含这两种元素 这些元素会通过|
进行分割,只需要根据最外层的|
进行分割
还是有点麻烦的
"email|url(name1|name2)|test(name3)".replace(/\|(?!(\w+\)))/g,",")
"email,url(name1|name2),test(name3)"
10 回答11.2k 阅读
15 回答8.1k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
直接正则应该做不到,但是可以先把括号里面的“|”替换成别的字符,如“@”,最后再替换回来
如果是里面有多个括号或者竖线思路是一样的,我举得例子是替换“|”, 你可以替换“(.*?)”,包括多个层括号,你可以遍历一层一层的替换处理,然后再遍历替换回去,如: