我正试图删除“……”在文本中,并将其替换为“.”.
我的代码:
System.out.println(TextHandler.class.toString() + " removeExcessiveSpaces E2 " + text);
while (text.contains("\\. \\.")) {
text = text.replaceAll("\\. \\.", ".");
}
System.out.println(TextHandler.class.toString() + " removeExcessiveSpaces E3 " + text);
文字输入:
"from the streets' fit but you know it. . this is just another case of female stopping play,. in an otherwise total result of a holiday. by m-uhjuly 04, 2006. . 8 . 42 . .. .... . . . . . . . .
预期产量:
"from the streets' fit but you know it this is just another case of female stopping play,. in an otherwise total result of a holiday. by m-uhjuly 04, 2006. . 8 . 42 ..
观察到的输出:
from the streets' fit but you know it. . this is just another case of female stopping play,. in an otherwise total result of a holiday. by m-uhjuly 04, 2006. . 8 . 42 . .. .... . . . . . . . .
(与输入无差异)
为什么不工作?
解决方法:
String#contains不期望正则表达式只是普通字符串.
所以使用:
if (text.contains(". .")) {
text = text.replaceAll("\\. \\.", ".");
}
或者只是使用String#replace:
text = text.replace(". .", ".");
标签:java,regex
来源: https://codeday.me/bug/20190727/1558380.html