import re
# 模块和实际工作时间的关系
# 正则表达式 *****
# re模块 --regex 正则表达式 # 有了re模块就可以在python语言中操作正则表达式。
# 自动化运维————开发
# 爬虫
# 什么是正则?
# 能做什么
# 1. 检测一个输入的字符串是否合法:用户输入一个内容的时候,我们要提前做检测,能够提高程序的
# 开发效率和减轻服务器的压力(表单验证)
# 2. 从一个大文件中找到所有符合规则的内容:能够高效的从一大段文字中快速找到符合规则的内容。
# 正则规则
# 字符组 [] :一个【】指标数一个字符的位置。【abc】只匹配a or b or c
# [0-9] : 根据sacii进行范围比对。
# [a-z]
# [A-Z]
# [0-9] ——————> \d
# 数字、字母、下划线 ------> \w == [0-9a-zA-Z_]
# 空白(\t \n 空格)——————> ( |\t|\n) == \s
# 元字符:匹配规则
# []
# \d
# \s
# \t
# \n
# \W 非数字字母下划线
# \D 不是数字就能匹配上
# \S 只要不是空白符都能匹配上
# .匹配除了换行符之外所有的
# [^\d] :非字符组 ,匹配所有的非数字,[^1] 除1外的所有字符。
# $ 匹配字符串的结尾
# ^ 匹配开头 除在【】中,永远放正则表达式的最前面
# ad|bc 或 ,缺点 ab|abc,从左到右去匹配,当匹配到了ab,就不会去匹配abc了,所以有重叠的时候,长的要放左边。
# ()分组的作用:
# 分组就是用一对圆括号“()”括起来的正则表达式,匹配出的内容就表示一个分组。从正则表达式
# 的左边开始看,看到的第一个左括号“(”表示第一个分组,第二个表示第二个分组,依次类推,
# 需要注意的是,有一个隐含的全局分组(就是0),就是整个正则表达式。
# 分完组以后,要想获得某个分组的内容,直接使用group(num)和groups()函数去直接提取就行。
# \b 匹配结尾
# 量词(一个量词只能约束前面一个字符)
# {n} 表示匹配N次
# {n,}
# {n,m}
# ? 0次或1次
# + 一次或多次
# * 0次或者多次
# 分组作用:\d+(\.\d+)?
# 匹配手机号码 1 开头 第二位3-9 11位
# s = '^1[3-9]\d{9}$'
#
# s1 = '1[3-9]\d{9}'
#
# # 贪婪匹配
# import re
# k = '12312414124'
# s = '\d{3,9}?' # 量词后面? 非贪婪匹配
# p1 = re.compile(s)
# print(p1.findall(k))
# .*?x
# 转义符 \
# 元字符
# 18/15身份证
# 15 : 1-9 15位
# 18 位:1-9 16 0-9/x
# ^[1-9]\d{14}$
# ^[1-9]\d{16}[x\d]$
# ^([1-9]\d{16}[x\d]|[1-9]\d{14})$
# ^[1-9]\d{14}(d{2}[\dx])?$
相关文章:
- JS基础:正则表达式 2018-07-22
- 【PHP基础】正则表达式 2018-09-28
- 正则表达式 - 基础篇 2021-10-29
- java基础----正则表达式 2021-09-24
- Shell 基础正则表达式 2022-01-02
- scala正则表达式基础 2021-11-21