欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java 特殊符号正则_java利用正则表达式处理特殊字符的方法实例

发布时间:2025/3/19 编程问答 49 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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利用正则表达式处理特殊字符的方法实例的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。