一、正则表达式的概念
正则表达式是指描述字符模式的表示方法,用于匹配、搜索、替换某些字符或字符串。
在Python中,可以使用re模块来进行正则表达式操作。
import re
# 在字符串中匹配一个单词
txt = "Hello World"
x = re.search("World", txt)
print(x)
运行上述代码,可以得到输出结果:
re.search()方法可以在字符串中搜索指定的模式,并返回第一个匹配项。
二、正则表达式语法
正则表达式的语法很灵活,可以根据需要进行组合使用。
以下是一些常用的正则表达式语法:
- .:匹配任意单个字符,除了换行符。
- \d:匹配数字字符。
- \w:匹配字母、数字或下划线字符。
- \b:匹配单词边界。
- *:匹配前一个字符零次或多次。
- +:匹配前一个字符一次或多次。
- ?:匹配前一个字符零次或一次。
- {n}:匹配前一个字符恰好n次。
- {n,}:匹配前一个字符至少n次。
- {n,m}:匹配前一个字符至少n次,但不超过m次。
- |:或者。
- ():分组。
- []:字符集。
三、正则表达式示例
下面给出一些常见的正则表达式示例
1、匹配电子邮箱:
import re
txt = "我的邮箱是123@qq.com,你的邮箱是abc@163.com吗?"
x = re.findall("\w+@\w+\.[a-z]{2,3}", txt)
print(x)
输出结果为:
['123@qq.com', 'abc@163.com']
2、匹配电话号码:
import re
txt = "我的电话是13812345678,你的电话是13987654321吗?"
x = re.findall("1\d{10}", txt)
print(x)
输出结果为:
['13812345678', '13987654321']
3、匹配IP地址:
import re
txt = "我的IP地址是192.168.1.1,你的IP地址是10.0.0.1吗?"
x = re.findall("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", txt)
print(x)
输出结果为:
['192.168.1.1', '10.0.0.1']
四、正则表达式函数
Python中的re模块提供了多个函数来执行各种正则表达式操作。
以下是一些常用的正则表达式函数:
- re.findall():搜索字符串,以列表形式返回匹配项。
- re.search():搜索字符串,返回第一个匹配项。
- re.sub():替换字符串中的匹配项。
- re.split():在匹配项处分割字符串。
五、使用正则表达式进行爬虫
正则表达式在网页爬虫中也是非常有用的。
以下是一个使用正则表达式进行爬虫的示例代码:
import re import requests # 获取页面源代码 url = "http://www.baidu.com" response = requests.get(url) html = response.text # 进行匹配 pattern = '(.*?) ' title = re.findall(pattern, html) # 输出匹配到的结果 print(title[0])
该代码可以获取百度首页的标题。
六、总结
正则表达式是一个非常强大的工具,可以用来进行字符串匹配、搜索、替换等操作。
Python中的re模块提供了各种正则表达式函数,可以方便地进行正则表达式操作。
在爬虫等实际应用场景中,正则表达式也是非常有用的。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/312006.html
 
 微信扫一扫
微信扫一扫  支付宝扫一扫
支付宝扫一扫 