1)compile():使用 compile 函数将正则表达式的字符串形式编译为一个Pattern对象。
2)finditer():返回生成器
3)findall():从一个字符串的开始位置起匹配正则表达式,返回match对象。
4)search():在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象。
5)match():表示从一个字符串的开始位置起匹配正则表达式,返回match对象。
6)split()
7)sub()
8)subn()
match对象匹配对象是包含有关搜索和结果信息的对象。
re模块的一般使用步骤:
首先,使用 compile 函数将正则表达式的字符串形式编译为一个Pattern对象。
其次,通过 Pattern 对象提供的一系列方法对文本进行匹配查找,获得匹配结果(一个Match对象)。
最后使用 Match 对象提供的属性和方法获得信息,根据需要进行其他的操作。
import re
match = re.search(r'[1-9]\d{5}','BIT 100081')
if match:
print(match.group(0) # 用group(0)来输出整个匹配成功的字符串
# 输出100081
1)字符组
[ ]:正则表达式中表示字符组标志
[Pp]:只能匹配P或p
import re
input_str = input()
# 编写获取python和Python的正则,并存储到match_python变量中
match_python=re.findall('[Pp]ython',input_str)
print(match_python)
2)search()函数
search()函数它的目的是接收一个正则表达式和一个字符串,并返回发现的第一个匹配的字符串。
import re
check_name = input()
a=re.search(r"张明",check_name)
if a is not None:
print(a.span()) # span方法获取的是正则表达式匹配到的位置
else:
print(a) # 匹配不到则会返回None
3)区间与区间取反
使用连字符(-)代表区间,比如[0-9].
可能我们还有个需求:匹配连字符。因为-会被正则表达式引擎理解为代表连接区间,所以这个时候我们需要对-进行转义。比如:[0-9-]
反区间:[^0-9]
4)快捷方式
\w ,与 “任意单词字符”匹配,在Python3中,基本上可以匹配任何语言的任意单词。
而当我们想要匹配任意数字的时候,也可以使用快捷方式 \d ,d即digit。在Python3中,它除了可以和[0-9]匹配,还可以和其他语言的数字匹配。
\s快捷方式匹配空白字符,比如空格,tab、换行 等。
\b 快捷方式匹配一个长度为0的字符串,但是,他仅仅在一个单词开始或结尾处匹配,这被称为词边界快捷方式。(#单词字符后面或前面不与另一个单词字符直接相邻)
取反;对应大写\W、\B、\S
5)字符串开始与结束
我们要获取判断字符串是否以python开头,是否以python结尾。
因此在正则表达式中 用^ 可以表示开始,用 $表示结束,示例如下:
a = re.search(r'^python', 'python is easy')
b = re.search(r'python$', 'python is easy')
c = re.search(r'^python', 'i love python')
d = re.search(r'python$', 'i love python')
print(a.span())
print(b)
print(c)
print(d.span())
输出:
(0, 6)
None
None
(7, 13)
6)点(.)、?、*、+用法