1. 正则表达式概述
正则表达式是一种对字符串进行匹配的工具,可以用来查找、替换、分割字符串等操作。在 Python 中,使用 re 模块来操作正则表达式。
正则表达式的特点:
1.灵活、规则性强
2.通用性强
3.语法较为复杂
在接下来的内容中,我们将会详细介绍 Python 中的正则表达式模块 re 的使用方法和语法规则。
2. re 模块函数介绍
2.1 re.match()函数
re.match()函数用于尝试从字符串的起始位置匹配一个模式。如果匹配成功返回一个匹配对象,否则返回 None。
语法:
re.match(pattern, string, flags=0)
其中:
pattern:表示正则表达式
string:表示要匹配的字符串
flags:可以指定匹配模式
示例:
import re
result = re.match('Hello', 'Hello, world!')
print(result.group()) # 输出:Hello
2.2 re.search()函数
re.search()函数用于在字符串中查找匹配项,如果匹配成功返回一个匹配对象,否则返回 None。
语法:
re.search(pattern, string, flags=0)
示例:
import re
result = re.search('world', 'Hello, world!')
print(result.group()) # 输出:world
2.3 re.findall()函数
re.findall()函数用于查找字符串中所有符合正则表达式的字符串,并返回一个列表。
语法:
re.findall(pattern, string, flags=0)
示例:
import re
result = re.findall('l', 'Hello, world!')
print(result) # 输出:['l', 'l', 'l']
2.4 re.sub()函数
re.sub()函数用于替换字符串中符合正则表达式的部分。
语法:
re.sub(pattern, repl, string, count=0, flags=0)
示例:
import re
result = re.sub('\d+', 'number', '123abc456def')
print(result) # 输出:numberabcnumberdef
3. 正则表达式语法规则
3.1 字符组
字符组是指由一组字符组成的集合,在正则表达式中使用方括号 [] 表示。
示例:
import re
result = re.findall('[aeiou]', 'Hello, world!')
print(result) # 输出:['e', 'o', 'o']
3.2 重复符号
重复符号用于表示某个字符的重复出现次数,常见的有 *、+、?、{m}、{m,n}。
*:表示重复零次或多次
+:表示重复一次或多次
?:表示重复零次或一次
{m}:表示重复 m 次
{m,n}:表示重复 m 到 n 次
示例:
import re
result = re.findall('o*', 'Hello, world!')
print(result) # 输出:['', '', 'o', '', '', '', 'o', '', '', '', '', '', '']
3.3 转义字符
转义字符用于表示正则表达式中的特殊符号,常见的有 \d、\w、\s,或者用反斜杠来转义特殊字符。
示例:
import re
result = re.findall('\d+', '123abc456def')
print(result) # 输出:['123', '456']
4. 正则表达式实例
4.1 匹配手机号码
import re
phone = '18812345678'
if re.match(r'^1[3456789]\d{9}$', phone):
print('合法手机号码')
else:
print('非法手机号码')
4.2 匹配邮箱
import re
email = 'example@domain.com'
if re.match(r'^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$', email):
print('合法邮箱地址')
else:
print('非法邮箱地址')
4.3 提取网页中的链接
import re
html = '''
'''
links = re.findall(r'href=[\'"]?([^\'" >]+)', html)
print(links)
5. 总结
本文详细介绍了 Python 中的正则表达式模块 re 的使用方法和语法规则,通过实例的方式展示了正则表达式的应用。正则表达式是一个非常强大的工具,对于字符串的处理和提取非常方便。