一、正则表达式的概念
正则表达式是指描述字符模式的表示方法,用于匹配、搜索、替换某些字符或字符串。
在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模块提供了各种正则表达式函数,可以方便地进行正则表达式操作。
在爬虫等实际应用场景中,正则表达式也是非常有用的。