有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用正则表达式模式使用冒号将字符串拆分为

我有一根类似这样的绳子

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

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

我的输出应该是

ars
a
currency (Argentina!: Pesos)**

感谢您的帮助:)


共 (3) 个答案

  1. # 1 楼答案

    一个正则表达式都不行。您可以在不太复杂化的情况下String.split("[()]"),在每隔一个数组索引处用:拆分字符串,最后连接回来

  2. # 2 楼答案

    如果确定不存在任何嵌套括号,则可以使用单个正则表达式来实现。在这种情况下,只有在下一个括号不是结束括号时,才可以简单地在冒号上拆分:

    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");
    
  3. # 3 楼答案

    也许这样的东西对你有用:

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

    其中str是字符串