给定这个字符串1990January20hello.abc我想应用正则表达式来获得最终的字符串1990January-20hello.abc
我以为我可以这样做:
String text = "1990January20hello.abc";
Pattern p = Patter.compile("(.*)(January|Jan)(.*)", Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
Matcher m = p.matcher(text);
while (m.find()){
String val1 = m.group(2);
String val2 = val1.replace("$", "-");
text = text.replace(val1, val2);
}
当我这样做时,它似乎在 while 循环中找到“一月”,但 val2 和文本停留在一月。我究竟做错了什么?就好像 Java 无法识别 $ 作为行尾/字符串的结尾。理想情况下,我想说val1.replace("(^|$)","-")这样我就可以得到1990-January-20hello.abc作为最终字符串。请帮忙。提前感谢您的建议。