温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-07-27 09:25:19 来源:亿速云 阅读:249 作者:iii 栏目:开发技术

本篇内容介绍了“如何用web正则表达式匹配字符串中汉字及中文标点符号”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

问题:

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

比如:

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

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 字符集七个字符属性之一:标点字符。 

其他六个是 

  • L:字母; 

  • M:标记符号(一般不会单独出现); 

  • Z:分隔符(比如空格、换行等); 

  • S:符号(比如数学符号、货币符号等); 

  • N:数字(比如阿拉伯数字、罗马数字等); 

  • C:其他字符 

“如何用web正则表达式匹配字符串中汉字及中文标点符号”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

web
AI