正则表达式

正则表达式

import re
正则表达式_第1张图片

正则表达式中常见的函数(re库)

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)点(.)、?、*、+用法

你可能感兴趣的:(爬虫学习,正则表达式,python,开发语言)