【问题标题】:What is regex for replacing &f afrer same什么是替换 & 之后的正则表达式
【发布时间】:2014-02-23 04:54:12
【问题描述】:

我有这样的字符串:

Hello &f are &f you &f here?

我只想用 "" 替换最后一个 &f (最后我的意思是第三个,它靠近“这里”。我尝试过这样的事情:

"Hello &f are &f you &f here?".replaceAll(".&f", "")

但它不起作用,有人可以帮助我吗?

【问题讨论】:

标签: java regex


【解决方案1】:
    String s = "Hello &f are &f you &f here?";
    s = s.substring(0,s.lastIndexOf("&f")) + s.substring(s.lastIndexOf("&f")+3);
    System.out.println("s = " + s); // prints: s = Hello &f are &f you here?

【讨论】:

    【解决方案2】:

    使用这个:

    (.*)&f
    

    并替换为反向引用$1。 (还是 Java 中的 \1?)

    http://regex101.com/r/qG0fM9

    【讨论】:

      【解决方案3】:

      也可以用StringBuilder.reverse()完成

      String str1 = "Hello &f are &f you &f here ?";
      String temp = new StringBuilder(str1).reverse().toString().replaceFirst("f&", "");
      String rslt = new StringBuilder(temp).reverse().toString();
      System.out.println(rslt);
      

      步骤:

      1. 使用 StringBuffer 反转字符串
      2. String.replaceFirst() 的帮助下替换第一个f&
      3. 然后再次反转该字符串。

      输出:

      Hello &f are &f you  here ?
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-25
        • 2020-10-27
        • 2017-12-10
        • 2020-08-02
        • 1970-01-01
        相关资源
        最近更新 更多