博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中文字符和中文标点符号的正则表达式
阅读量:6213 次
发布时间:2019-06-21

本文共 1398 字,大约阅读时间需要 4 分钟。

hot3.png

匹配中文标点符号: String str="[\u3002\uff1b\uff0c\uff1a\u201c\u201d\uff08\uff09\u3001\uff1f\u300a\u300b]" 该表达式可以识别出: 。 ; , : “ ”( ) 、 ? 《 》 这些标点符号。 匹配中文汉字 String str="[\u4e00-\u9fa5]"; 该表达式可以识别出任何汉字。

\w匹配的仅仅是中文,数字,字母,对于国人来讲,仅匹配中文时常会用到,见下 复制代码 代码如下:

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

或许你也需要匹配双字节字符,中文也是双字节的字符 复制代码 代码如下:

匹配双字节字符(包括汉字在内):[^\x00-\xff]

注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

import java.util.regex.Matcher;import java.util.regex.Pattern;import org.apache.commons.lang3.StringUtils;public class Test{        public static void main(String[] args)    {        // String regEx = "[1]?";                String words = "にほんご(かな)ニホンゴ(カナ)1sdfasdfasdf您的说法撒的发生的阿斯顿发斯蒂芬dsdddd#¥%@#%¥@#%¥";        String result = patternZh(words);        System.out.println(result);    }        private static String patternZh(String words)    {        String regEx = "[\u4e00-\u9fa5]?"; // 匹配中文字符的正则表达式        // String regEx = "[^\\x00-\\xff]?"; //匹配双字节字符(包括汉字在内)        Pattern pattern = Pattern.compile(regEx, Pattern.UNICODE_CASE | Pattern.CASE_INSENSITIVE);        Matcher matcher = pattern.matcher(words);        StringBuffer strBuf = new StringBuffer(0);        while (matcher.find())        {            if (StringUtils.isNotBlank(matcher.group()))            {                strBuf.append(matcher.group());            }        }        return strBuf.toString();    }}

转载于:https://my.oschina.net/yizhichao/blog/845075

你可能感兴趣的文章
java性能监控
查看>>
老李分享:java线程生命周期 2
查看>>
一个强大专业的响应式jQuery幻灯效果插件:Royal Slider
查看>>
Formal Languages and Compilers-LL(1),FIRST and FOLLOW
查看>>
ThinkPHP源码学习---is_ssl() 函数 判断是否SSL协议
查看>>
PyOdps在交互式环境下的使用,让探索ODPS数据更容易些
查看>>
聊聊netflix的EurekaHttpClient
查看>>
聊聊flink Table的select操作
查看>>
单臂路由
查看>>
作业 第一章
查看>>
第一次作业
查看>>
我的友情链接
查看>>
康盛系列产品工程师php
查看>>
Excel利用超链接打开指定文件夹
查看>>
Elasticsearch走上专案专有化 AWS:将另开辟开放版
查看>>
J盘无法访问RAW,里面的数据怎样找到
查看>>
硬盘的读写原理
查看>>
photoshop技术
查看>>
python编写员工信息表
查看>>
2018-3-30 Linux学习笔记
查看>>