文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

用正则表达式匹配字符串中汉字及中文标点符号

2024-04-02 19:55

关注

问题:

在写项目时遇到需要匹配字符串中所有的汉字并且包括简单的中文标点符号

比如:

匹配下面这个完成的字符串

let str = '上传文件,你好呀,我很好';

网上能够查到很多匹配汉字的正则

let reg = /[\u4e00-\u9fa5]+/g;

console.log(str.match(reg));
// 结果如下
['上传文件', '你好呀', '我很好']

从结果可以看出上面写的正则没有匹配到标点符号,,所以将完整的字符串(str)分隔开了

又从网上查找匹配中文标点的正则

// 匹配中文标点的正则
\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3010|\u3011|\u007e

// 可以匹配以下中文标点符号(顺序是一一对应的)
// `。 ? ! , 、 ; : “ ” ‘ ' ( ) 《 》 【 】 ~`

Ps:

如果上面没有想要的标点符号,可以上网查找将中文符号转换成Unicode编码添加在表达式中即可

将刚才编写的正则表达式进行下简单的修改

let reg = /[(\u4e00-\u9fa5)(\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3010|\u3011|\u007e)]+/g

console.log(str.match(reg));
// 打印结果
['上传文件,你好呀,我很好']

可以看到这次结果是我们想要的形式,整个字符串都匹配到了~

补充:

Unicode 编码并不只是为某个字符简单定义了一个编码,而且还将其进行了归类。 

\pP 其中的小写 p 是 property 的意思,表示 Unicode 属性,用于 Unicode 正表达式的前缀。 

大写 P 表示 Unicode 字符集七个字符属性之一:标点字符。 

其他六个是 

总结

到此这篇关于用正则表达式匹配字符串中汉字及中文标点符号的文章就介绍到这了,更多相关正则匹配汉字及中文标点符号内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯