java 特殊符号正则_java利用正则表达式处理特殊字符的方法实例
前言
一串字符串中有特殊符號,可能會影響到相關接口業務,所以需要把字符串中的特殊字符都過濾掉
百度上面搜索大部分處理方法是通過正則表達式, 他需要處理的特殊符號都寫進正則表達式中去校驗, 這種方式一眼看過去就非常別扭, 感覺不靈活, 萬一需要過濾其他的又得臨時加進去
解決方案
如下所示
public static String stringFilter (String str){
String regEx="[\\u00A0\\s\"`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“'。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}
這種方式是網上普遍能搜索到的, 個人任務極其的low, 不推薦使用, 推薦使用下面這種
public static String romveSpecialChar(String str) {
String regEx = "\\pP|\\pS|\\s+";
str = Pattern.compile(regEx).matcher(str).replaceAll("").trim();
return str;
}
這種方式就比較簡潔, 中國pP和pS匹配特殊符號然后替換掉, 也可以結合其他稍作修改就好更加完美
注意事項
其中
\s+是空格一個或者多個,不管在那個位置都能匹配
\pP 其中的小寫 p 是 property 的意思,表示 Unicode 屬性,用于 Unicode 正表達式的前綴。
大寫 P 表示 Unicode 字符集七個字符屬性之一:標點字符。
其他六個是
L:字母;
M:標記符號(一般不會單獨出現);
Z:分隔符(比如空格、換行等);
S:符號(比如數學符號、貨幣符號等);
N:數字(比如阿拉伯數字、羅馬數字等);
C:其他字符
上面這七個是屬性,七個屬性下還有若干個子屬性,用于更進一步地進行細分。
Java 中用于 Unicode 的正則表達式數據都是由 Unicode 組織提供的。
這個文本文檔一行是一個字符,第一列是 Unicode 編碼,第二列是字符名,第三列是 Unicode 屬性, 以及其他一些字符信息。
總結
到此這篇關于java利用正則表達式處理特殊字符的文章就介紹到這了,更多相關java正則表達式處理特殊字符內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
總結
以上是生活随笔為你收集整理的java 特殊符号正则_java利用正则表达式处理特殊字符的方法实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java date oracle_jav
- 下一篇: java event 异步_[转]jav