替換特殊字符,一個或多個空格和期間,我有以下字符串:Java的正則表達式的特殊字符和週期
See it now! .5..%..off your purchase!.Only today.
我想它是
See it now! 5% off your purchase! Only today.
那就是:
每個特殊字符後跟零個或多個空格和一個或多個句點,將被替換爲特殊字符和空格。在數字和2個週期的情況下,將僅替換空格
我該怎麼做?
替換特殊字符,一個或多個空格和期間,我有以下字符串:Java的正則表達式的特殊字符和週期
See it now! .5..%..off your purchase!.Only today.
我想它是
See it now! 5% off your purchase! Only today.
那就是:
每個特殊字符後跟零個或多個空格和一個或多個句點,將被替換爲特殊字符和空格。在數字和2個週期的情況下,將僅替換空格
我該怎麼做?
\試試這個
String resultString = subjectString.replaceAll("\\B[ .]+", " ");
這一個或多個空格或由非單詞邊界之前週期相匹配。然後這些被替換爲一個空格。
編輯基於經修正的問題
:
String resultString = subjectString.replaceAll("\\B[ .]+|(\\d)\\.+", "$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 ");
什麼是冗長的正則表達式? – Dejell
'(?x)'標誌允許我向正則表達式添加註釋。 –
請定義「特殊字符」 – Bohemian
什麼是非字 – Dejell