这些少为人知的正则表达式元字符,你顶多会两个,第一个很有用

龙逸凡
龙逸凡

创作者俱乐部成员

正则表达式的元字符,网上介绍资料很多,但非常完整的并没看到【我整理的较完整的元字符作用的表格介绍下次发文放出】。

比如题图中的 \H、\V 、\K、\G、\Q、\X除了前两个介绍资料略多,后面的,尤其是后三个,介绍资料少之又少。

今天龙逸凡就将自己学习的笔记整理出来,跟大家分享。错漏之处,请大家指正。

元字符\K

注意:K是大写的

用于重置匹配的起始位置。具体来说,\K 会忽略它前面正则表达式所匹配的所有内容,也就是将前面正则表达式的匹配结果Kan砍掉,只要后面的。

案例1:提取应交税金的第三级科目

公式

=REGEXP(B1,"([一-龟]+-){2}\K[一-龟]+")

正则表达式"([一-龟]+-){2}"提取科目的前二级,然后用一把大砍刀\K将它砍掉。

案例2:提取各收款方式的金额

公式:

=--IFNA(REGEXP($A2,B$1&"\K\d+"),)

用\K的好处是不必费神费力地用(?<=表达式)去定位,用大砍刀\K砍掉前面不要的保留后面想要的,干净利落!

尤其是当正向后行断言需要使用不确定量词时【WPS和Excel正则表达式的正向后行断言不能使用不确定量词】,这时就是\K派上用场的时候。

案例3:提取英文名

比如要提取下图B列的英文名,不能使用正向后行断言(?<=.+? +\w+),这个时候就提起大砍刀\K,手起刀落,将前面的姓名拼音咔嚓掉。

公式:

=REGEXP(B3,"(.+? +\w+){1}\K.*")

元字符\Q、\E

\Q 打开转义模式,

\E 关闭转义模式

转义字符\X

注意:X是大写的

基本知识:

看起来是一个符号,实际上它是由两个 Unicode 代码点组成:

a(基本字符部分)

´(重音符部分)

当我们用正则表达式对它们进行匹配时,它会就会显出原形

这个有点类似于以前写的文章,给数字汉字加圈

正因为有上面的情况存在,那如何将本字符及后面紧邻的变音符、重音符等组合符号视为一个整体进行匹配呢?

使用元字符\X

如果没有重音符等组合字符,全是普通字符呢?

它会将后面紧邻的普通字符当作组合字符,和当前字符捏合在一起。

一般情况下,这个元字符用不上,只需知道有这个元字符、它有这特殊作用就行了,需要时来本Excel偷懒的技术公众号查阅即可。

转义符\G

这是一个锚点字符,用于匹配上一次匹配结束的位置,以确保匹配从上一次匹配结束的位置继续进行,也就是说一旦不满足,就停止匹配。

它在全局模式下使用。

比如下图B4单元格的公式,提取数字,三个数字一组,普通模式下,结果为四组数字。

如果想达到“不满足条件就停止匹配”的效果,就使用\G。

B5单元格的公式:

=REGEXP(B1,"\G\d{3}")

转义符\h\v

\h 代表水平空白字符【空格、不间断空格和水平制表符】

\v 代表垂直空白字符【换行符、回车符、换页符、垂直制表符】

这个没什么好讲的。就不上案例了。

更多介绍正则表达式的文章,请点击阅读合集正则表达式

正则表达式的字符组,新手必踩的几个坑,你必须知道

5句话,让你的正则表达式水平突飞猛进!(第1-2句)

5句话,让你的正则表达式水平突飞猛进!(第3-5句)

掌握这一点,就能正确地写出正则表达式了

正则表达式练习题10道,自动判断结果

重庆
浏览 170
4
11
分享
11 +1
8
4 +1
全部评论 8
 
1231393578237
学习
· 四川省
回复
 
wps新路
wps新路

WPS函数专家

收藏学习
· 重庆
回复
 
董欣煜
点赞收藏学习
· 吉林省
回复
 
小豪2050
学习
· 山西省
回复
 
无为
看不懂的路过
· 江苏省
回复
 
亂雲飛渡
点赞收藏学习
· 广东省
回复
 
HC.旋
跟着老师学
· 福建省
回复
 
Mr Chen
Mr Chen

创作者俱乐部成员

还有多少,怎么简洁的记起来
· 甘肃省
回复