【问题标题】:Match pattern java and grep strings匹配模式 java 和 grep 字符串
【发布时间】:2016-04-03 09:53:07
【问题描述】:

我有一个字符串

NAME: Colin AGE:20 EMAIL;TYPE=PREF,INTERNET:colin@gmail.com

我想提取 : 模式之后的字符串。 我想要的输出是

Colin
20
colin@gmail.com

我该怎么做?

【问题讨论】:

    标签: java android regex pattern-matching


    【解决方案1】:

    尝试将^NAME: ([ \.\w]+) AGE:(\d+) EMAIL;TYPE=PREF,INTERNET:([@\.\w]+)$ 替换为\1\n\2\n\3

    【讨论】:

      【解决方案2】:

      这应该可以工作

      :\s*([^\s]+)
      

      Regex Demo

      IDEONE DEMO

      【讨论】:

        【解决方案3】:

        此方法即使您的值中有多个单词也可以使用,例如NAME: Colin Jones

        String str = "NAME: Colin Jones AGE:20 EMAIL;TYPE=PREF,INTERNET:colin@gmail.com";
        
        str = str.replaceAll("([\\w,=;]+?):", "##DELIMITER##");
        
        for( String value : str.split("##DELIMITER##") )        
            System.out.println(value.trim());
        

        要深入了解该模式,了解匹配的外观(并在将来需要时调整它们),请查看this pattern on regex101.com

        请注意,在 Java 中,您需要对特殊字符进行两次转义,即当您在 regex101.com 上使用 \w 时,您需要在代码中使用 \\w

        【讨论】:

          猜你喜欢
          • 2014-09-07
          • 1970-01-01
          • 1970-01-01
          • 2011-12-17
          • 2012-03-21
          • 2018-12-01
          • 1970-01-01
          • 2014-03-03
          • 1970-01-01
          相关资源
          最近更新 更多