正则表达式是一种通用的文本处理工具,可以帮助我们快速、灵活地处理各种文本。Python 作为一门功能强大、易学易用的编程语言,不仅集成了正则表达式模块,而且还提供了各种字符串、列表、字典等方便处理文本的数据类型和函数库。
一、正则表达式基础
正则表达式是由一系列特殊字符和普通字符组成的模式,它可以用来匹配、查找、替换文本中的字符串。以下是一些正则表达式的基本元字符:
. 匹配任意单个字符 \w 匹配任意单词字符(字母、数字、下划线) \d 匹配任意数字字符 \s 匹配任意空白字符(包括空格、制表符等) ^ 匹配字符串开头 $ 匹配字符串结尾
例如,\d{3} 可以匹配一个由三个连续数字字符构成的字符串,[a-z]\w* 可以匹配一个以小写字母开头、后面跟着任意单词字符的字符串。
二、Python中的正则表达式模块
Python中的正则表达式模块是 re,它提供了丰富的功能来处理各种文本操作。以下是一些常用的正则表达式函数:
re.match(pattern, string, flags=0):从字符串开头匹配正则表达式 re.search(pattern, string, flags=0):在字符串中查找第一个匹配的正则表达式 re.findall(pattern, string, flags=0):查找所有匹配的正则表达式,并以列表形式返回 re.sub(pattern, repl, string, count=0, flags=0):使用指定字符串替换与正则表达式匹配的所有子串
例如,可以使用 re.findall('\d+', text) 查找文本中所有的数字,使用 re.sub('<a.*?>(.*?)</a>', '\1', html) 替换 HTML 中的超链接。
三、应用案例
1. 提取网页中的文章标题
在 HTML 中,网页标题通常被包含在 <title></title> 标签中。我们可以使用以下的代码提取网页中的文章标题:
import re
import requests
url = 'https://www.example.com'
html = requests.get(url).text
pattern = '<title>(.*?)</title>'
match = re.search(pattern, html, re.S)
if match:
    print(match.group(1))
该代码使用 requests 模块获取网页 HTML 源代码,然后使用正则表达式提取网页标题。需要注意的是,使用 re.search() 函数时需要指定 re.S 标志以匹配多行文本。
2. 校验手机号码格式
在国内,手机号码通常是11位数字,以1开头。为了校验手机号码格式是否合法,我们可以使用以下的代码实现:
import re
def is_valid_phone_number(phone_number):
    pattern = '^1\d{10}$'
    return bool(re.match(pattern, phone_number))
该函数接受一个手机号码作为参数,并使用 re.match() 函数判断是否符合手机号码的格式。如果符合,则返回 True,否则返回 False。
3. 删除字符串中的标点符号
有时候我们需要删除字符串中的标点符号,以进行文本分析或者数据处理的工作。以下的代码可以删除字符串中的所有标点符号:
import re
def remove_punctuation(text):
    pattern = r'[^\w\s]+'
    return re.sub(pattern, '', text)
该函数接受一个字符串作为参数,使用 re.sub() 函数将字符串中的所有标点符号替换为空字符串。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/312973.html
 
 微信扫一扫
微信扫一扫  支付宝扫一扫
支付宝扫一扫 