5句话,让你的正则表达式水平突飞猛进!(第1-2句)
创作者俱乐部成员
第一句
在正则表达式眼中,字符串由位置和字符组成。正则表达式就是去匹配字符或位置。
比如:字符“Excel”就是由字母E、x、c、e、l,以及他们之间的位置、前、尾等六个位置组成。
看不懂?
没关系,我们后文会围绕这一点进行详细阐述。
第二句
字符串的位置有字符串的开始、结尾、单词的边界、除了单词边界的其他位置。
匹配位置的元字符有^、$、\b、\B、\A、\Z、\z
下面我们一个个来介绍
1、字符串的开始,用^表示,字符串结尾,用$表示
示例:
将字符串的开头或结尾“替换”为@
注意,字符串的开头和结尾位置是聚宝盆,不管你是替换它,还是不替换它,它就在哪里,不增不减。
按常理,我们将某字符替换后,它应该就不存在了。但开头和结尾这位置始终都在。我们用REGEXP将开头、结尾位置替换为@后,还可在外面套一层REGEXP再去替换,只要你有耐心,可以一直替换,无穷无尽。
原理后面再做解释。
2、表示字符串的开始结尾还可用比较冷门的\A、\Z、\z
\A 表示字符串的绝对开头,也就是我们通常理解的一个字符串的开始。
^ 一般情况也表示字符串的开头,但在多行模式下时,表示每行的开头。
也就是说,不是多行模式时,他们是一样的。
如下图:
但在多行模式下,\A表示字符串的绝对开头,而^表示每行的开头。
一般情况下,$、\Z、\z都表示字符串的结尾。
$ 表示字符串的末尾,或者在字符串末尾的换行符之前。在多行模式时,表示每一行的结尾。
\z 表示字符串的绝对结尾。后面不会有任何字符(包括换行符)
\Z 匹配字符串的末尾,或者在字符串末尾的换行符之前。
说明:
下图B1单元格的“Excel偷懒的技术”后面有两个换行符。
\b 表示单词边界。
单词是指由连续相邻的字母、数字或下划线组成的字符序列。
\B 是除单词边界之外的其他位置
如下图B4单元格的公式
=REGEXP(B1,"\b",2,"@")
将B1单元格单词的左右边界替换为@符号。
实战案例:
第二篇: