Java 正则表达式使用分隔符拆分文本,但不使用';当分隔符介于()
我想用Java 正则表达式使用分隔符拆分文本,但不使用';当分隔符介于(),java,regex,scala,split,Java,Regex,Scala,Split,我想用,分隔符拆分Scala中的文本,但在,位于括号中时不拆分,而是提取,并忽略括号,例如拆分以下内容: 1,2(,)3 我应该得到一个数组,其中包含: `one` `two , three` 提前感谢(?![^()]*\),|\((?=,)|(?您可以使用此基于查找的正则表达式: (?![^)()]*\)),|\((?=,)|(?<=,)\) (?<!\)), *(?!\)) (? 在Java中: (?<!\\)), *(?!\\)) (? 它将示例输入分解为: o
,
分隔符拆分Scala中的文本,但在,
位于括号中时不拆分,而是提取,
并忽略括号,例如拆分以下内容:
1,2(,)3
我应该得到一个数组,其中包含:
`one`
`two , three`
提前感谢
(?![^()]*\),|\((?=,)|(?您可以使用此基于查找的正则表达式:
(?![^)()]*\)),|\((?=,)|(?<=,)\)
(?<!\)), *(?!\))
(?
在Java中:
(?<!\\)), *(?!\\))
(?
它将示例输入分解为:
one
2(,)3
在前后是否有(
和)
,
或者输入可以是:一,二(foo,bar)三
也可以?@anubhava,(
和)
在之前和之后,这项工作除非在拆分函数中使用,否则它将拆分二(,)三个
到两个
,,
和三个
。但是我想知道这个(?![^)()]*\)是否负责删除()
。您能解释一下您的解决方案是如何工作的吗?谢谢you@mnish这就是我写的为什么你需要加入最后三个来获得正确的匹配。它按,
分割,而不是在()
之间。或者它按分割(
后接,
。谢谢,但这会将示例字符串拆分为1'和
2(,)3`