在android中使用正則表達式與在java中使用正則表達式是有區別的,比如使用正則表達式去掉一個字符串中的標點符號及一些特殊符號時,在java中可以使用的方法是:
public static String format(String s){
String str=s.replaceAll("\\pP|\\pS|\\s", "");
return str;
}
而在android中使用這個正則表達式\\pP|\\pS|\\s時,問題提示這樣一個錯誤:
java.util.regex.PatternSyntaxException: Syntax error U_REGEX_PROPERTY_SYNTAX near index 3:\pP|\pS|\s
錯誤的原因在於java中使用正則表達式與android中使用正則表達式是不同的,如果在android中遇到使用正則表達式的時候可以參考這篇文章Android下使用正則表達式
我在android中用正則表達式去掉字符串中標點符號及其他特殊符號的方法如下所示:
public static String format(String s){
String str=s.replaceAll("[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……& amp;*()——+|{}【】‘;:”“’。,、?|-]", "");
return str;
}
在這裏要注意一下,當我去掉字符串中的這個符號“-”時,需要在正則表達式中添加對應的符號,我添加這個符號時把它放在了正則表達式的最後的位置,即“|-”,這個“-”放在“`~!@#$%^&*()+=|{}':;'”這些符號當中是不能過濾到字符串中的這個“-”符號的,試了幾次都不行,最後把它放在了正則表達式最後的位置,終於可以了。