簡體   English   中英

如何創建僅不匹配空格和不匹配字母的正則表達式?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM