目录
1.正则表达式概念
正则表达式:是一个帮助你检查某一个字符串是否符合某个模式的序列,简单说就是字符串的合法性校验。
2.python的正则表达式处理模块
import re
#re.match函数:从头匹配,匹配第一个字符,不满足条件就返回None
#re.search函数:从头匹配,匹配到一个满足条件的字串就返回,没匹配到就返回None
#re.sub函数:将字符串中的符合某种要求的字符替换成另外的字符
#re.complier函数:将符合某种要求的字符串进行编译
#re.findall函数:将整个字符串中符合要求的字串输出
#re.finditer函数:将整个字符串中符合要求的字串作为一个可迭代对象输出
2.1re.match函数
import re
print(re.match(r"a", "abcd"))
print(re.match(r"b", "abcd"))
# <re.Match object; span=(0, 1), match='a'>
# None
2.2 re.search函数
import re
print(re.search(r"a", "abcdab"))
print(re.search(r"b", "abcdab"))
# <re.Match object; span=(0, 1), match='a'>
# <re.Match object; span=(1, 2), match='b'>
2.3re.sub函数
import re
print(re.sub("a", "*", "aaabcdefg"))
# ***bcdefg
2.4re.complier函数
import re
result = re.compile("\d+")
print("match:", result.match("21ey73gf06f1"))
print("search:", result.search("21ey73gf06f1"))
# match: <re.Match object; span=(0, 2), match='21'>
# search: <re.Match object; span=(0, 2), match='21'>
2.5re.findall函数
import re
a = "ab3yAhy1tB9fgE18G7gcKUK08x"
print(re.findall(r"[a-z]", a))
print(re.findall(r"[A-Z]", a))
print(re.findall(r"[0-9]", a))
# ['a', 'b', 'y', 'h', 'y', 't', 'f', 'g', 'g', 'c', 'x']
# ['A', 'B', 'E', 'G', 'K', 'U', 'K']
# ['3', '1', '9', '1', '8', '7', '0', '8']
2.6re.finditer函数
import re
a = "ab3yAhy1tB9fgE18G7gcKUK08x"
it = re.findall(r"[a-z]", a)
for i in it:
print(i, end="\t")
# a b y h y t f g g c x
3.输出匹配结果的开始位置、结束位置和组号
import re
result = re.search(r"\\thello", "sc\\thello")
print(result.start())
print(result.end())
print(result.group())
# 2
# 9
# \thello
4.快捷方式
\A 匹配开始
\Z 匹配字符串结束,如果有换行,就在换行前结束
\z 匹配字符串结束
\b 匹配单词边界,单词边界=》匹配不是单词字符
\B 不匹配单词边界,=》匹配单词字符
\w匹配单词字符
\W 不匹配单词字符
\d 匹配数字
\D 不匹配数字
\s 匹配空白字符 =>换行 换页 制表符
\S 不匹配空白字符
\n 匹配一个换行符
\t 匹配一个换行符
5.正则表达式修饰符
re.I 匹配对大小写不敏感
re.M 多行匹配
re.S 匹配换行符之内的所有字符
re.U 根据Unicode字符集解析字符
6.正则表达式模式
^ 匹配字符串开头
$ 匹配字符串结尾
. 匹配除换行符外的任意字符
[] 表示一组字符,例[abc],匹配a或b或c
[^] 表示取反,例[^abc],匹配除a、b、c以外的字符
* 匹配前面的字符任意次数
+ 匹配前面的字符至少一次
? 匹配前面的字符0或1次
{n} 匹配前面的字符n次
{n,} 匹配前面的字符n次及以上
{,n} 匹配前面的字符0到n次
{n,m} 匹配前面的字符n到m次
| 或,例a|b,匹配a或b
() 括号内表示一个字符集
(?=re) 前向肯定界定符,匹配前面的字符是re
(?!re) 前向否定界定符
7.匹配数字、字母、字符
[0-9] 匹配一个数字
[a-z] 匹配一个小写字母
[A-Z] 匹配一个大写字母
[a-zA-Z0-9] 匹配一个字母或者数字
[^0-9] 匹配一个除数字以外的字符