用正则表达式匹配字符串中汉字及中文标点符号实用指南
平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“用正则表达式匹配字符串中汉字及中文标点符号”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
目录
- 问题:
- 比如:
- Ps:
- 补充:
- 总结
问题:
在写项目时遇到需匹配字符串中所有的汉字同时且包括轻松的中文标点符号
比如:
匹配下面这个完成的字符串
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:其他字符
总结
到此这篇关于用正则表达式匹配字符串中汉字及中文标点符号的文章就介绍到这了,更多相关正则匹配汉字及中文标点符号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
您可能感兴趣的文章:
- js实现正则匹配中文标点符号的方法
- javascript正则表达式处理中文和中文标点符号的过程
相关资讯
-
09.04
探索PERCENTRANK函数在数据分析中的灵活应用技-主要信息
-
09.04
掌握 Logseq 表格提升知识管理效率的实用实用用法-主要信息
-
09.04
千问AI_API怎么用于数据分析
-
09.04
Mischievous提示词怎么写-画面元素和风格参数
-
09.04
如何打开AI格式文件的方法与有哪些-类型差异和选择建议
-
09.04
Lion Safari Elf An提示词怎么写-画面元素和风格
游戏推荐
推荐专题
热门阅读
-
- 教你用正则表达式提取数字和小数点实用指南
- 09.04
-
- 提高正则表达式性能的几点实用建议汇总实用指南
- 09.04
-
-
-
- 冒泡排序算法及Ruby版的简单实现方式实用指南
- 09.04
-
- Ruby面向对象编程中类与做法的基础学习实用指南
- 09.04
推荐下载
-
-
下载
- |
-
-
下载
- 《行尸走肉第一章》免安装中文汉化硬盘版下载
- 单机|436 MB
- 一款以动作冒险为主题的游戏
-
-
下载
- 《街头霸王X铁拳》免安装中文汉化硬盘版下载
- 单机|111MB
- 一款非常好玩的格斗游戏
-
-
下载
- |
-
-
下载
- 《暗黑破坏神3》免安装繁体中文正式版下载
- 单机|7630 MB
- 一款以角色扮演为主题的游戏
-
-
下载
- 《马克思佩恩3》免安装硬盘版下载
- 单机|27033 MB
- 一款以第三人称射击为主题的游戏