【发布时间】:2014-05-12 12:56:48
【问题描述】:
我想用正则表达式来分割这个字符串:
String filter = "(go|add)addition|(sub)subtraction|(mul|into)multiplication|adding(add|go)values|(add|go)(go)(into)multiplication|";
我想用| 分割它,除非管道出现在括号内,在这种情况下它们应该被忽略,即我排除了这样的输出:
(go|add)addition
(sub)subtraction
(mul|into)multiplication
adding(add|go)values
(add|go)(go)(into)multiplication
更新
然后我想将括号内的单词从开头移到结尾。
像这样..
addition(go|add)
subtraction(sub)
multiplication(mul|into)
adding(add|go)values
multiplication(add|go)(go)(into)
我已经尝试过这个正则表达式:Splitting of string for `whitespace` & `and`,但他们使用了引号,我无法使其适用于括号。
【问题讨论】:
-
如果您想对这个操作使用单个正则表达式,那么您需要非常熟悉前瞻和后瞻语法
(?...) -
@DerGolem 查看我发布的link..他们使用了'并且我想使用()..
-
@DerGolem 这不是真的。前瞻/后视是可能的
-
括号总是在开头吗?他们总是在那里吗?
-
我最好使用一个唯一的分隔符,如
"(go|add)addition;(sub)subtraction;(mul|into)multiplication"(注意最后一个分隔符没用)。这里的分隔符是 ;