正则表达式

re模块操作正则表达式(正则表达式本身是另外一种语言规范)

正则表达式:通过一个规则来从一段字符串中找到符合规则的内容//判断某段字符串是否符合规则

用处 :1. 注册页/网页上要求输入一个信息,判断输入的信息是否格式正确

2.爬取数据,从网页上把代码以字符串的形式下载,回到内存,提取这个大字符串中想要的内容

规则: 匹配  待匹配的字符串

正则规则:

1. 字符组:约束字符中某一个字符位置上的值是什么 , 只要是出现在字符组中的内容都算匹配到了.

2."[3-9]"从小到大的顺序是根据ASCII码的顺序来的

3.匹配数字[0-9]匹配字母[A-Za-z] 匹配数字和字母[0-9A-Za-z]   [0-9a-fA-F]匹配十六进制

元字符:

. 除了\n(换行)不能匹配其他都可以匹配.

\d  匹配所有的数字

\s  匹配空白符

\w  匹配数字,字母,下划线.

\n  匹配换行符

\t  匹配制表符(Tab键)

\b  匹配一个单词的两端

^  匹配字符串的开始 (用法:放在要匹配字符的开始)

$  匹配字符串的结尾 (用法:放在要匹配字符的结尾)

\W  匹配非字母 ,数字 ,下划线 的下划线

\S  匹配非空白符的字符串

\D  匹配非数字的字符串

[....] 匹配字符组中的所有字符

[^...]  匹配非字符组中的所有字符

a|b  匹配字符a 或字符b    字符长的放在前面

()  匹配括号内的表达式,也表示一个组.

*  重复零次或更多次

+ 重复一次或更多次

?  重复零次或一次

{n}  重复n次

{n, }  重复n或更多次

{n,m} 重复n到m次

\d+(\.\d+)?  匹配小数

\d.+ 贪婪匹配    \d.+?  非贪婪匹配

?在量词后面不表示量词,表示惰性,尽量少匹配.

\d.*?x  意思是:从数字开始匹配,直到遇到x停下来.(前面取任意长度,直到一个x出现停下来)

贪婪匹配:正则表达式本身就是贪婪匹配的

惰性匹配:尽量少匹配,需要在量词的后面加上一个?,最常见的用法:.*?标识,表示匹配任意长度的字符遇到标识就立刻停止.

看正则表达式怎么区分?

找元字符,元字符后面如果出现量词,那么这个量词就是约束这个元字符出现的次数.如果元字符没有量词出现,表示匹配一次.如果量词后面有?表示惰性匹配.

r"\\n"  r"\n"

print("\\n")

print("\\\\n")

print(r"\n")  #取消字符串中所有转义符的转义作用

print(r"\\n")

在正则表达式中,涉及到特殊转义的内容,都放在 r""中.

在工具网页上匹配成功之后,在python中匹配不成功,匹配的字符串中又带有 "\" 那么直接将测试好的内容都放在 r""中

正则表达式本身具有处理字符串的能力.

如果要处理的字符串存在python的内存里,通过re模块----->操作正则表达式

 

posted @ 2018-07-13 18:47  冯坤大神  阅读(85)  评论(0编辑  收藏  举报