我有一个这样的字符串。
ars:a:currency (Argentina!: Pesos):
我需要使用冒号拆分字符串,但不应拆分括号内的冒号。我需要一个正则表达式来拆分这个字符串。
我的输出应该是
ars
a
currency (Argentina!: Pesos)**
帮助表示赞赏:)
如果您确定不会有任何嵌套括号,则可以使用单个正则表达式来完成。在这种情况下,仅当下一个括号不是右括号时,您才可以简单地在冒号上拆分:
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");
它不适用于单个正则表达式。您可以在不复杂的情况下做的是String.split("[()]")
,在每个其他数组索引处用 拆分字符串:
,最后连接回来。
也许这样的事情对你有用:
String[] tok = str.split(":", 3);
str
你的字符串在哪里。