一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

java利用正则表达式处理特殊字符方法代码实例

时间:2020-12-08 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下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 正则表达式标准(可以找到所有的子属性),可参考:http://www.unicode.org/reports/tr18/

各 Unicode 字符属性的定义,可以用一看看某个字符具有什么属性。可参考:http://www.unicode.org/Public/UNIDATA/UnicodeData.txt

这个文本文档一行是一个字符,第一列是 Unicode 编码,第二列是字符名,第三列是 Unicode 属性, 以及其他一些字符信息。

热门栏目