为什么WPS正则表达式的w只匹配到数字字母下划线,而Excel还会匹配到汉字?如何相互转换?

付费文章、Excel练习题、函数公式、职场模板 、财务应用、财务分析及图表、表格合并、RPA财务机器人、一本不正经、学会骗、图表及可视化、表格美化、漂亮3D、新手避坑指南、快捷键、符号作用、生成序列、条件格式、数据整理、筛选技巧、日期时间、偷懒宝典、Office 365、Power Query、WPS技巧、PPT技巧、Word技巧、实用软件、正则表达式

👇点击查看最近五篇原创文章👇

龙逸凡的Excel视频课程

今天是九一八事变爆发94周年。

尽管祖国已经日益强盛,但我们仍不能忘记那段屈辱的历史。

铭记国耻,砥砺前行。

什么是单词?

正则表达式中的单词不是英文中的单词,通常来讲,连续紧邻的数字字母下划线所组成的字符串就是单词。

组成单词的字符有数字、字母、下划线,相当于字符组[A-Za-z0-9_]+。

比如,在WPS中,我们用w,它就会提取数字字母下划线:

=REGEXP(A3,"w+")

但是,在Excel中,却不一样,w还会包含汉字

=REGEXEXTRACT(A3,"w+",1)

准确地讲,在Excel中w不止包含汉字,还包括一些其他的字母、数字和以及组合符号。

根据PCRE2的手册,它匹配 p{L}、p{N}、p{Mn} 或 p{Pc} 的字符。

也就是说w相当于[p{L}p{N}p{Mn}p{Pc}]+。

大家如果不知道 p{L}、p{N}、p{Mn} 或 p{Pc} 具体包含哪些类别的字符,可以打开下面的网站查看

https://www./info/unicode/category/index.htm

为什么不一样?

正则表达式有一个 PCRE_UCP 选项Unicode-aware character properties,对它的设置不同,会让 w, d, s 等确定是使用 Unicode 属性,还是默认的 ASCII。

而WPS和Excel对Unicode Character Properties(UCP)选项设置不同。

简单粗暴的来理解就是,w有两种模式:

ASCII 模式和Unicode 模式

Unicode 模式时,包含汉字等,Excel正则默认是Unicode模式。

而 ASCII 模式时不包含汉字,WPS默认是ASCII模式。

如何互换?

1、如果要在WPS中使用Unicode 模式,在正则中添加(*UCP)

=REGEXP(A3,"(*UCP)w+")

2、在Excel中要使用ASCII模式,在正则中添加(?a)

=REGEXEXTRACT(A3,"(?a)w+",1)

知识点总结

正则中的单词概念

UCP选项

ASCII 模式和Unicode 模式

两种模式下w所包含的字符范围

两种模式如何转换