正则表达式
1.检测每一段字符串是否符合规则
2从一大段文字中匹配符合规则的字符串
主要应用 Python 爬虫
注意:只和字符串相关
元字符
描述的是一个位置上的内容规则
列
# [012345]# [0-5]# [0-9]# [9-0] 不能从大到小来规定范围字符组内的所有范围根据ASCII码来的,一个中括号表示一个字符 数字[0-9]字母小写[a-z]大写[A-Z]大小写[a-zA-Z]数字和大小写[A-Z0-9a-z] 大小写字母加下划线[A-Za-z_] 括号内没有符号,根据ascii码从小到大在字符组中-是有特殊意义的,如果我们想取消这个横杆的特殊意义要加\作为转义符特殊规则的元字符
[0-9] \d 匹配任意一个数字 digit
[A-Z0-9a-z] \w 变量(标识符)
\n 匹配回车换行
\t 匹配制表符table
空格本身匹配 空格
\s 匹配所有的空白
\b 匹配一个单词的边界
反义词(大写)
\W 除了数字字母下划线之外的所有
\D 除了数字之外的所有
\S 除了空白之外的所有
. 匹配换行符之外的所有
[^123] 除123之外的所有
匹配所有 :[\D\d] [\W\w] [\S\s] 括号内为大小写
开始符和结束符
^ 永远在一个规则的最开始
& 永远在一个规则的最末尾
^和& 规定了这个字符串的长度,并且在这个长度内的内容
| 或的概念
123|456 取123 或则456
() 表示分组
www\.(baidu|oldboy)\.com 表示取www.baidu.com或则www.oldboy.com量词
在量词范围内尽可能多的匹配
{n} 表示出现n次
{n,} 表示至少出现n次
{n,m} 表示出现n-m次
? 表示匹配0次或则1次
+ 表示匹配1次或多次
* 表示匹配0次或多次
注意 量词表示匹配的次数 元字符表示匹配一个字符的内容
列:
# 匹配整数# [1-9]\d*|0# 匹配小数# \d+\.\d+# 匹配一个整数或者小数# \d+\.\d+|([1-9]\d*|0)# \d+\.?\d*# \d+(\.\d+)? # 正则表达式 匹配身份证号码# 15位# 首位不能为0# ^[1-9]\d{14}$# 18位# 首位不能为0,末尾可能是x和数字# ^[1-9]\d{16}[\dx]$# 合起来# ^([1-9]\d{16}[\dx]|[1-9]\d{14})$# [1-9]\d{14}(\d{2}[\dx])?转义符
# 在测试的网页上写的是什么# 就直接复制过来# 然后在字符串外面加上一个r# r'\\n' --> r'\n'# t 't'# \t \本身具有转义作用,相当于改变了t本来的面目# \\ \本身具有转义作用,\\相当于转义了\的特殊作用,相当于普通的一个'\'惰性特点:
需要我们手动设置的 尽可能少匹配贪婪特性:
默认的 尽可能多匹配 在量词范围内尽可能多的匹配 - 贪婪匹配 # a.* 以a开头的任意一个字符串都可以被匹配出来# a.*? 非贪婪# a.*?x 从a开始匹配,匹配任意长度的字符,遇到一个x就立即停止转载于:https://www.cnblogs.com/zlyboke/p/10572109.html
