python正则表达式

目录

1.正则表达式概念

2.python的正则表达式处理模块

2.1re.match函数

2.2 re.search函数

2.3re.sub函数

2.4re.complier函数

2.5re.findall函数

2.6re.finditer函数

3.输出匹配结果的开始位置、结束位置和组号

4.快捷方式

5.正则表达式修饰符

6.正则表达式模式

7.匹配数字、字母、字符


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]  匹配一个除数字以外的字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值