我有以下字符串:
See it now! .5..%..off your purchase!.Only today.
我希望它是
See it now! 5% off your purchase! Only today.
这是:
每个特殊字符后跟零个或多个空格以及一个或多个句点,将被特殊字符和空格替换。如果是数字和2个句点,则仅用空格替换
我该怎么做?
答案 0 :(得分:2)
\试试这个
String resultString = subjectString.replaceAll("\\B[ .]+", " ");
这匹配一个或多个前面有非单词边界的空格或句点。然后将它们替换为单个空格。
修改强>
基于修正后的问题:
String resultString = subjectString.replaceAll("\\B[ .]+|(\\d)\\.+", "$1 ");
还匹配一个数字后跟一个或多个句点。这些时期被一个空格所取代。
答案 1 :(得分:1)
这应该有效:
String resultString = subjectString.replaceAll(
"(?x) # verbose regex \n" +
"(\\p{P}) # Match and capture a punctuation character \n" +
"\\ * # Match zero or more spaces \n" +
"\\. # Match a dot", "$1 ");