Python正则表达式之对号入座篇
1. 正则表达式基础概念
正则表达式是一种匹配文本的强大工具。在Python中,我们可以使用re模块来进行正则表达式的处理。
下面是一些常用的正则表达式符号含义表:
符号 | 含义 |
---|---|
. | 匹配除换行符外的任意字符 |
\d | 匹配数字 |
\w | 匹配字母、数字或下划线 |
\s | 匹配任意空白字符,包括空格、制表符、换行符等 |
^ | 匹配字符串的起始位置 |
$ | 匹配字符串的结束位置 |
* | 匹配前一个字符出现0次或多次 |
+ | 匹配前一个字符出现1次或多次 |
? | 匹配前一个字符出现0次或1次 |
{m} | 匹配前一个字符出现m次 |
{m,n} | 匹配前一个字符出现m到n次 |
2. 常用的正则表达式操作函数
2.1 re.match函数
re.match函数会从字符串的起始位置开始匹配一个正则表达式,返回匹配对象或None。
示例代码:
import re
text = "Welcome to Python Regular Expression"
pattern = "Python"
result = re.match(pattern, text) # 匹配成功
print(result.group())
输出结果:
Python
2.2 re.search函数
re.search函数会在字符串中查找第一个匹配正则表达式的位置,返回匹配对象或None。
示例代码:
import re
text = "Welcome to Python Regular Expression"
pattern = "Python"
result = re.search(pattern, text) # 匹配成功
print(result.group())
输出结果:
Python
2.3 re.findall函数
re.findall函数会返回所有匹配正则表达式的非重叠部分,返回一个列表。
示例代码:
import re
text = "Welcome to Python Regular Expression, Python is powerful"
pattern = "Python"
result = re.findall(pattern, text) # 匹配成功
print(result)
输出结果:
['Python', 'Python']
3. Python正则表达式实战
下面是一个简单的实例,使用正则表达式匹配一个文本中的电子邮件地址。
import re
text = "John's email address is john@example.com. He often uses john@example.net as backup."
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
emails = re.findall(pattern, text)
print(emails)
输出结果:
['john@example.com', 'john@example.net']
解释:
- \b:匹配单词边界
- A-Za-z0-9._%+-:匹配字母、数字、下划线、句号、百分号、加号和减号
- @:匹配“@”符号
- [A-Za-z0-9.-]+:匹配字母、数字、句号和横杠,并且可以出现1次或多次
- .:匹配句点
- [A-Z|a-z]{2,}:匹配至少2个字母的单词形式的顶级域名
综上所述,Python正则表达式可以用来处理各种复杂的文本匹配问题,将它的强大功能运用到实践中,可以帮助我们更快速、准确地提取出需要的信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python正则表达式之对号入座篇 - Python技术站