我有一个像这样的字符串。
ars:a:currency (Argentina!: Pesos):
我需要使用冒号分割字符串,但不应拆分括号内的冒号。我需要一个正则表达式来分割这个字符串。
我的输出应该像
ars
a
currency (Argentina!: Pesos)**
帮助表示赞赏:)
答案 0 :(得分: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");
答案 1 :(得分:0)
单个正则表达式不适用。如果没有太多复杂的话,你可以做的是String.split("[()]")
,用:
将每个其他数组索引处的字符串拆分,最后连接回来。
答案 2 :(得分:0)
也许这样的事情对你有用:
String[] tok = str.split(":", 3);
其中str
是您的字符串。