java 特殊符号正则_java利用正则表达式处理特殊字符的方法实例
前言
一串字符串中有特殊符號,可能會影響到相關(guān)接口業(yè)務(wù),所以需要把字符串中的特殊字符都過濾掉
百度上面搜索大部分處理方法是通過正則表達(dá)式, 他需要處理的特殊符號都寫進(jìn)正則表達(dá)式中去校驗(yàn), 這種方式一眼看過去就非常別扭, 感覺不靈活, 萬一需要過濾其他的又得臨時加進(jìn)去
解決方案
如下所示
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é)合其他稍作修改就好更加完美
注意事項(xiàng)
其中
\s+是空格一個或者多個,不管在那個位置都能匹配
\pP 其中的小寫 p 是 property 的意思,表示 Unicode 屬性,用于 Unicode 正表達(dá)式的前綴。
大寫 P 表示 Unicode 字符集七個字符屬性之一:標(biāo)點(diǎn)字符。
其他六個是
L:字母;
M:標(biāo)記符號(一般不會單獨(dú)出現(xiàn));
Z:分隔符(比如空格、換行等);
S:符號(比如數(shù)學(xué)符號、貨幣符號等);
N:數(shù)字(比如阿拉伯?dāng)?shù)字、羅馬數(shù)字等);
C:其他字符
上面這七個是屬性,七個屬性下還有若干個子屬性,用于更進(jìn)一步地進(jìn)行細(xì)分。
Java 中用于 Unicode 的正則表達(dá)式數(shù)據(jù)都是由 Unicode 組織提供的。
這個文本文檔一行是一個字符,第一列是 Unicode 編碼,第二列是字符名,第三列是 Unicode 屬性, 以及其他一些字符信息。
總結(jié)
到此這篇關(guān)于java利用正則表達(dá)式處理特殊字符的文章就介紹到這了,更多相關(guān)java正則表達(dá)式處理特殊字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
總結(jié)
以上是生活随笔為你收集整理的java 特殊符号正则_java利用正则表达式处理特殊字符的方法实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java date oracle_jav
- 下一篇: java event 异步_[转]jav