一、转义 使用 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$ " , "1234@sina.com") ——新浪邮箱注册限制
① 以后写正则表达式要习惯加上 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结尾就匹配成功,返回值