寻找一些帮助来找到如何替换最后的"。"通过java中的regex将char添加到其他字符串中。我有这样的代码,它不起作用。任何建议。
"//myserver.com//NAGA.CSV".replaceAll(".$","_2.")
输出 //myserver.com//NAGA_2.CSV
答案 0 :(得分:3)
您可以使用前瞻,找到字符串的结尾,前面是除dot之外的字符。
yourString.replaceAll("\\.(?=[^.]*$)", "replacement");
请注意,第一个点需要使用反斜杠进行转义,因为dot在正则表达式中具有特殊含义(它匹配任何字符)。第二个点不需要转义,因为特殊含义不适用于方括号。
(?= )
结构意味着“后跟此” - 换句话说,您匹配的点后面可以跟任意数量的非点字符,然后是字符串的结尾。这些额外的角色不被视为比赛的一部分。
答案 1 :(得分:0)
这不是正则表达式,但您可以使用String.lastIndexOf()
方法获取char的最后一次出现的位置,并使用String.substring
创建新的String:
String yourString = "test.csv";
String newValue = "_2.";
int lastOccurence = yourString.lastIndexOf(".");
String replacedString = yourString.substring(0, lastOccurence) + newValue + yourString.substring(lastOccurence + 1);