[英]How to create regex that matches only not spaces and not letters?
我有String但很長。
我需要刪除所有非空格和所有非字母:
我的模式是:
String content=readUrl();
content.replaceAll("(\\S)|(^\\[a-z])", "");
這是行不通的。
為什么我的正則表達式可以替代所有內容?
您可以使用否定的字符類:
(?i)[^\\sa-z]+
如果希望支持所有字母,則更好:
[^\\s\\p{L}]+
分解:
content.replaceAll("(\\S)|(^\\[a-z])", "");
將替換所有與模式匹配的內容。 |
表示序列匹配模式,如果它匹配左側的部分, 或者匹配右邊的部分。 左側的模式(\\\\S)
匹配每個非空白字符。 因此, 每個非空白字符都將匹配,並將被淘汰。 我認為,只有當您的字符串實際上以五個字符[az]
開頭時,右邊的部分才會匹配(因為您已經告訴過它以[
字面意義]對待),因此它實際上對結果沒有影響。 但是結果將是結果只是空白。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.