0

我有一个这样的字符串。

ars:a:currency (Argentina!: Pesos):

我需要使用冒号拆分字符串,但不应拆分括号内的冒号。我需要一个正则表达式来拆分这个字符串。

我的输出应该是

ars
a
currency (Argentina!: Pesos)**

帮助表示赞赏:)

4

3 回答 3

1

如果您确定不会有任何嵌套括号,则可以使用单个正则表达式来完成。在这种情况下,仅当下一个括号不是右括号时,您才可以简单地在冒号上拆分:

String[] splitArray = subjectString.split(
    "(?x):    # Multiline regex: Match a colon\n" +
    "(?!      # only if it's impossible to match the following at this point:\n" +
    " [^()]*  #  any number of characters besides parentheses\n" +
    " \\)     #  followed by a closing parenthesis\n" +
    ")        # End of lookahead assertion");
于 2012-05-09T13:35:17.280 回答
0

它不适用于单个正则表达式。您可以在不复杂的情况下做的是String.split("[()]"),在每个其他数组索引处用 拆分字符串:,最后连接回来。

于 2012-05-09T13:30:13.947 回答
0

也许这样的事情对你有用:

String[] tok = str.split(":", 3);

str你的字符串在哪里。

于 2012-05-09T13:30:20.660 回答