👇点击查看最近五篇原创文章👇
龙逸凡的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所包含的字符范围
两种模式如何转换