最近遇到一个问题,需要从字符串中提取英文、数字、小数点。
首先用到了Hutool工具的ReUtil,delAll方法可以帮我们删掉字符串中指定的内容。
普通的正则匹配只能按照顺序去排除,但是在不确定字符串中内容类型的顺序的情况下就很棘手。
于是就用到了Unicode,所有的字符集、编码方案中的每一个字符都有唯一一个Unicode。
这样我们只需要界定所需的Unicode范围就可以了,常用的Unicode编码范围:
A-Z:\u0041-\u005a
a-z :\u0061-\u007a
0-9:\u0030-\u0039
//删除英文、数字、小数点以外的内容。
ReUtil.delAll("[^\\u0041-\\u005a\\u0061-\\u007a\\u0030-\\u0039\\u002e]",String);
更多Unicode转换:(传送门),直接自己输入内容然后转换为Unicode编码即可。