【问题标题】:Replace special chars with regex Java [duplicate]用正则表达式Java替换特殊字符[重复]
【发布时间】:2018-01-14 15:11:19
【问题描述】:

寻求一些帮助以找到如何替换最后一个“。”通过java中的正则表达式将字符转换为其他字符串。我有类似这样的代码,但它不起作用。任何建议。

"//myserver.com//NAGA.CSV".replaceAll(".$","_2.")

输出: //myserver.com//NAGA_2.CSV

【问题讨论】:

标签: java regex


【解决方案1】:

您可以使用前瞻来查找字符串的结尾,前面是点以外的字符。

yourString.replaceAll("\\.(?=[^.]*$)", "replacement");

请注意,第一个点需要用反斜杠转义,因为点在正则表达式中具有特殊含义(它匹配任何字符)。第二个点不需要转义,因为特殊含义不适用于方括号。

(?= ) 结构的意思是“后跟这个”——换句话说,你匹配的点后面可以跟任意数量的非点字符,然后是字符串的结尾。这些额外的字符不被视为匹配的一部分。

【讨论】:

    【解决方案2】:

    这不是一个正则表达式,但您可以使用String.lastIndexOf() 方法来获取您的字符最后出现的位置并使用String.substring 来创建您的新字符串:

    String yourString = "test.csv";
    String newValue = "_2.";
    int lastOccurence = yourString.lastIndexOf(".");
    String replacedString = yourString.substring(0, lastOccurence) + newValue + yourString.substring(lastOccurence + 1);
    

    【讨论】:

      猜你喜欢
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多