三十三、正则表达式2:r—转义、边界($、^、\b、\B)

一、转义  使用 r 能够自动转义\t、\n

来理解转义:

打印时本来是输不出\n的,加上r后自动转义,相当于\\nabc

总结:

1、r的意思是说:它是英文单词raw的一个缩写,也就是说当你在定义这个字符串的时候它是什么样的,最终在输出打印的时候

     就是什么样的,中间转义的过程python帮我们实现了。

2、例如:re.match(r"[a-z0-9][a-z0-9_]{2,14}[a-z0-9]@sina\.com$ "  ,  "[email protected]") ——新浪邮箱注册限制

 ① 以后写正则表达式要习惯加上 r ,因为\n、\t没在正则表达式中出现过,所以用r自动转义;而 在正则表达式中出现了,所以单独转义   \.

 ② 而\d、\w有特殊意义,在正则表达式中出现,如果转义单独转义。

 ③ 点在正则中有特殊意义,要匹配,想要后面字符串输入的sina.com必须是点,而不是sina@com要用 \. 自动转义(\自动转义)

二、表示边界

1、$ 匹配字符串结尾——加上$后,结束的意思,限制匹配字符串内容个数,超出不输出

2、^ 匹配字符串开头

^ 不是出现在[ ]当中的话(出现在[ ]内叫取反),而是出现在描述的开始位置,所要表达的意义是不一样的

但是这个在match()方法中是体现不出来的,因为match()方法就是从头开始进行匹配的

3、\b 匹配一个单词的边界  

一个字符串中(“ ”内),出现空格会分成单独的单词,连在一块会默认一个整体

总结:^和$是描述整个字符串(整个规则)的边界—也就是“”里面所有的都考虑;

            \b 、\B是描述中间某个单词的边界(有空格分割,可分割成单独的单词)    

             如果字符串没有要匹配的字母,也不返回输出任何值

① 要以ve作为单词的结尾才可以:

也就是  —  先匹配\w,再找ve字母,比较是否符合\b意义,以ve结尾

② 下面:有空格hove作为单独的单词,检查边界 

     从左到右匹配,匹配到hove是以ve结尾的,返回hove,因为有空格,abc是另一个单词不管它

③ \s匹配了空格,而ve前边和后边都是ve,所以输出 ho  ve

 

4、\B  匹配非单词边界   —与上述相反

① \B要求ve的e右边部分必须得出现字符,不能出现空白字符,一旦出现了空白字符,就意味着e是这个单词的结尾了,也就是e是这个单词的边界了。——不输出

如果字符串没有ve字母,也不返回输出任何值

只要单词不是ve结尾就匹配成功,返回值

 

 

猜你喜欢

转载自blog.csdn.net/xk1761299425/article/details/81543007
今日推荐