我需要拆分一个字符串,但忽略方括号之间的内容。 您可以想象这类似于忽略引号内的内容。
我遇到了报价的解决方案;
(\|)(?=(?:[^"]|"[^"]*")*$)
所以;
one|two"ignore|ignore"|three
会是;
one
two"ignore|ignore"
three
但是,我正在努力调整它以忽略 [] 而不是 ". 部分原因在于有两个字符,而不是一个。部分原因是 [] 需要转义,部分原因是我对正则表达式非常糟糕。
我的目标是得到;
所以;
一|二[忽略|忽略]|三
拆分为;
one
two[ignore|ignore]
three
我试着自己弄清楚,但我陷入了困境;
(\|)(?=(?:[^\[|\]]|\|][^\[|\]]*\[|\])*$)
我现在到处都能看到括号和线条。
帮助!
最佳答案
这是您发布的 ""
正则表达式的改编版本:
(\|)(?=(?:[^\]]|\[[^\]]*\])*$)
(\|)(?=(?:[^ "]| "[^ "]* ")*$) <- "" version for comparison
您将第二个 "
替换为 \[
并将第一个和第三个替换为 \]
关于javascript - 不在方括号之间按 "| "拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20202274/