java利用正則表達式處理特殊字符的方法實例
前言
一串字符串中有特殊符號,可能會影響到相關(guān)接口業(yè)務(wù),所以需要把字符串中的特殊字符都過濾掉
百度上面搜索大部分處理方法是通過正則表達式, 他需要處理的特殊符號都寫進正則表達式中去校驗, 這種方式一眼看過去就非常別扭, 感覺不靈活, 萬一需要過濾其他的又得臨時加進去
解決方案
如下所示
public static String stringFilter (String str){ String regEx="[\\u00A0\\s\"`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“'。,、?]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); return m.replaceAll("").trim(); }
這種方式是網(wǎng)上普遍能搜索到的, 個人任務(wù)極其的low, 不推薦使用, 推薦使用下面這種
public static String romveSpecialChar(String str) { String regEx = "\\pP|\\pS|\\s+"; str = Pattern.compile(regEx).matcher(str).replaceAll("").trim(); return str; }
這種方式就比較簡潔, 中國pP和pS匹配特殊符號然后替換掉, 也可以結(jié)合其他稍作修改就好更加完美
注意事項
其中
\s+是空格一個或者多個,不管在那個位置都能匹配
\pP 其中的小寫 p 是 property 的意思,表示 Unicode 屬性,用于 Unicode 正表達式的前綴。
大寫 P 表示 Unicode 字符集七個字符屬性之一:標(biāo)點字符。
其他六個是
L:字母;
M:標(biāo)記符號(一般不會單獨出現(xiàn));
Z:分隔符(比如空格、換行等);
S:符號(比如數(shù)學(xué)符號、貨幣符號等);
N:數(shù)字(比如阿拉伯?dāng)?shù)字、羅馬數(shù)字等);
C:其他字符
上面這七個是屬性,七個屬性下還有若干個子屬性,用于更進一步地進行細分。
Java 中用于 Unicode 的正則表達式數(shù)據(jù)都是由 Unicode 組織提供的。
Unicode 正則表達式標(biāo)準(zhǔn)(可以找到所有的子屬性),可參考:http://www.unicode.org/reports/tr18/
各 Unicode 字符屬性的定義,可以用一看看某個字符具有什么屬性。可參考:http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
這個文本文檔一行是一個字符,第一列是 Unicode 編碼,第二列是字符名,第三列是 Unicode 屬性, 以及其他一些字符信息。
總結(jié)
到此這篇關(guān)于java利用正則表達式處理特殊字符的文章就介紹到這了,更多相關(guān)java正則表達式處理特殊字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot結(jié)合websocket聊天室實現(xiàn)私聊+群聊
本文主要介紹了springboot結(jié)合websocket聊天室實現(xiàn)私聊+群聊,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值
這篇文章主要介紹了Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08SpringCloud用Zookeeper搭建配置中心的方法
本篇文章主要介紹了SpringCloud用Zookeeper搭建配置中心的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04Spring?Boot?實現(xiàn)Redis分布式鎖原理
這篇文章主要介紹了Spring?Boot實現(xiàn)Redis分布式鎖原理,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-08-08深入了解SparkSQL中數(shù)據(jù)的加載與保存
這篇文章主要為大家詳細介紹了SparkSQL中數(shù)據(jù)的加載與保存的相關(guān)知識,文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解下2023-11-11