这些少为人知的正则表达式元字符,你顶多会两个,第一个很有用
创作者俱乐部成员
正则表达式的元字符,网上介绍资料很多,但非常完整的并没看到【我整理的较完整的元字符作用的表格介绍下次发文放出】。
比如题图中的 \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 代表垂直空白字符【换行符、回车符、换页符、垂直制表符】
这个没什么好讲的。就不上案例了。
更多介绍正则表达式的文章,请点击阅读合集正则表达式
WPS函数专家
KVP
创作者俱乐部成员