【问题标题】:replace in java using regular expression在java中使用正则表达式替换
【发布时间】:2013-02-19 08:53:16
【问题描述】:

假设我有一个字符串

  String = ".... helllo.... good \"morning\" .....\" "

我想得到输出

  helllo good morning 

如何在 Java 中使用正则表达式来做到这一点?

【问题讨论】:

标签: java regex string replaceall


【解决方案1】:

如果您只是想删除.",那么您可以这样做

 str = str.replaceAll("\"|\\.", "");

这个正则表达式替换任何"(转义为\",因为在java字符串文字中)或(|.(首先转义为\.,因为在正则表达式中然后作为\\.,因为\ 必须在 java 字符串文字中被转义)("")。

【讨论】:

    【解决方案2】:

    这个

    String yourString = ".... helllo.... good \"morning\" .....\" ";
    System.out.println(yourString.replaceAll("[.\\\"]", ""));
    

    输出helllo good morning

    【讨论】:

    • 你到底为什么使用(.*?)
    【解决方案3】:

    假设您只想维护空格字符和字母,您可以使用以下正则表达式:

    [^a-zA-Z\s]+
    

    如果您还想包含数字:

    [^a-zA-Z0-9\s]+
    

    只需用空字符串替换该正则表达式的匹配项。

    编辑:

    如果您只想做相反的事情(删除某些字符,例如."),那么您可以查看@dystroy 的答案。

    【讨论】:

      【解决方案4】:
      public static void main(String[] args) {
          String str = ".... helllo.... good \"morning\" .....\" ";
          str = str.replaceAll("[^a-zA-Z]", " ").replaceAll("  +", " ");
      
          System.out.println(str);
      }
      

      【讨论】:

        【解决方案5】:

        有很多方法可以做到这一点。

        这是一种使用 String 类的简单替换方法的方法。

            String s = ".... helllo.... good \"morning\" .....\" ";
            s = s.replace(".","").replace("\"", "");
            System.out.println(s);
        

        【讨论】:

          猜你喜欢
          • 2010-12-24
          • 1970-01-01
          • 2012-03-20
          • 1970-01-01
          • 2014-03-29
          • 1970-01-01
          • 1970-01-01
          • 2019-12-02
          • 1970-01-01
          相关资源
          最近更新 更多