Python基础教程之正则表达式基本语法以及re模块

Python基础教程之正则表达式基本语法以及re模块

正则表达式是一种强大的工具,可以用于匹配、查找和替换文本中的模式。Python中,re模块提供一系列函数来操作正则表达式。本攻略将详细讲解正则表达式的基本语法、常用符号以及re模块的常用方法,包括search()、match()、findall()、sub()。

正则表达式基本语法

正则表达式由普通字符和特殊字符组成。普通字符包括大小写字母、数字和一些标点符号,特殊字符包括元字符和转义字符。

元字符是正则表达式中具有特殊含义的字符,包括:

  • .:配任意字符,除换行符。
  • *:匹配前面的字符零次或多次。
  • +:匹配前面的字符一次或多次。
  • ?:匹配前面的字符零次或一次。
  • `^:匹配字符串的开头。
  • $:匹配字符串的结尾。
  • []:匹配括号中的任意一个字符。
  • ():将括号中的字符作为一个整体进行匹配。
  • |:匹配两个或多个正则表达式中任一个。

转义字符用于将特殊字符转义为普通字符,包括\\d\s\w等。

下面是一个例子,演示如何使用正则表达式匹配字符串中的数字:

import re

text = 'The price is $1099.'
pattern = r'\d+'
result = re.findall(pattern, text)
if result:
    print('Matches found:', result)
else:
    print('Matches not found')

在上面的代码中,我们使用正则表达式\d+匹配字符串中的数字。\d表示匹配一个数字字符,+表示匹配一个或多个。findall()函数返回匹配的结果。运行代码后,输出结果为Matches found: ['1099']

re模块常用方法

re模块提供了一系列函数来操作正则表达式,包括:

  • re.search(pattern, string, flags=0):在字符串中搜索正则表达式第一个匹配项。
  • re.match(pattern, string, flags=0):在字符串的开头匹配正则表达式。
  • re.findall(pattern, string, flags=0):在字符串中查找正则表达式的所有匹配项。
  • re.sub(pattern, repl, string, count=0, flags=0):在字符串中搜索正则表达式的所有匹配项,并将其替换为指定的字符串。

其中,pattern表示正则表达式,string表示匹配字符串,flags表示正则表达式的匹配模式。

下面是一个例子,演示如何使用re.search()函数搜索字符串中的正则表达式:

import re

text = 'The quick brown fox jumps over the lazy dog.'
pattern = r'fox'
result = re.search(pattern, text)
if result:
    print('Match found:', result.group())
else:
    print('Match not found')

在上面的代码中,我们使用正则表达式fox匹配字符串中的foxsearch()用于在字符串中搜索正则表达式的第一个匹配项。运行代码后,结果为Match found: fox

示例1:匹配HTML标签中的文本内容

下面是一个例子,演示如何使用正则表达式匹配HTML标签中的文本内容:

import re

text = '<h1>Welcome to website</h1>'
pattern = r'<.*?>(.*?)</.*?>'
result = re.search(pattern, text)
if result:
    print('Match found:', result.group(1))
else:
    print('Match not found')

在上面的代码中,我们使用正则表达式<.*?>(.*?)<!--.*?-->匹配HTML标签中文本内容。<.*?>表示匹配一个或多个任意字符,.*?表示非贪婪匹配,()中的.*?匹配到的字符串作为捕获组。search()用于在字符串中搜索正表达式的第一个匹配项。运行代码,输出结果为`Match found: Welcome to my website。

示例2:提取网页中的图片链接

下面是另一个例子,演示如何使用正则表达式提取网页中的图片链接:

import re
import requests

url = 'https://www.example.com'
response = requests.get(url)
html = response.text
pattern = r'<img.*?src="(.*?)".*?>'
result = re.findall(pattern, html)
if result:
    print('Matches found:', result)
else:
    print('Matches not found')

在上面的代码中,我们使用正则表达式<img.*?src="(.*?)".*?>匹配网页中的图片链接。<img.*?>表示匹配img标签,src="(.*?表示匹配src属性中的链接,()表示匹配到的链接作为捕获组findall()函数返回所有匹配的结果。运行后,输出结果为匹配到的图片链接列表。

以上是Python基础教程之正则表达式基本语法以及re模块的常用方法。正则表达式是Python爬虫中常用的具,读者可以通过这些示例更好地理解正则表达式的应用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python基础教程之正则表达式基本语法以及re模块 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • 如何使用Python在MySQL中使用排序查询?

    在MySQL中,可以使用ORDER BY子句对查询结果进行排序。在Python中,可以使用MySQL连接来执行排序查询。以下是在Python中使用排序查询的完整攻略,包括排序查询的基本语法、使用排序查询的例以及如何在中使用排序查询。 排序查询的基本语法 排序查询的基本语法如下: SELECT column_name(s) FROM table_name OR…

    python 2023年5月12日
    00
  • python实现pptx批量向PPT中插入图片

    当你需要向 PPT 中插入大量图片时,手动操作会非常繁琐,因此你可以使用 Python 的库 python-pptx 实现自动化批量插入图片。下面是具体的实现方法: 1. 安装 python-pptx 首先,在命令行下输入以下命令来安装 python-pptx: pip install python-pptx 2. 导入必要的库 在 Python 代码开头,…

    python 2023年6月3日
    00
  • Python3.5面向对象编程图文与实例详解

    下面我来为您详细讲解“Python3.5面向对象编程图文与实例详解”的完整攻略。 什么是面向对象编程 面向对象编程(Object Oriented Programming,简称 OOP)是一种程序设计思想,它将程序中的实体(称为对象)视为相互作用的个体,通过定义类和对象来实现对实体的描述和处理。在 Python 中,对象可以是一些数据,也可以是一些方法,而类…

    python 2023年5月30日
    00
  • Python使用selenium实现网页用户名 密码 验证码自动登录功能

    下面是详细的攻略,包含两个示例说明。 Python使用selenium实现网页自动登录 在这个教程中,我们将学习如何使用Selenium库来编写Python代码,以实现自动化登录网页功能。 前置条件 首先你需要安装Python和Selenium,可以使用以下命令来安装: pip install selenium 其次,你需要下载ChromeDriver并添加…

    python 2023年5月19日
    00
  • 在Python中使用NumPy计算一组数据的柱状图

    下面是在Python中使用NumPy计算一组数据的柱状图的完整攻略。 步骤一:安装NumPy包 在Python中使用NumPy包需要先安装NumPy包。使用pip命令进行安装: pip install numpy 步骤二:导入NumPy包 使用import关键字导入NumPy包: import numpy as np 步骤三:准备数据 准备一组数据用于绘制柱…

    python-answer 2023年3月25日
    00
  • python判断完全平方数的方法

    下面是“python判断完全平方数的方法”的完整攻略。 判断完全平方数的方法 方法一:使用平方根函数 首先,我们可以使用Python内置的平方根函数判断一个数是否为完全平方数。具体做法如下: import math def isPerfectSquare(num: int) -> bool: if num < 0: return False if…

    python 2023年5月31日
    00
  • 分析机器学习之决策树Python实现

    分析机器学习之决策树Python实现攻略 简介 决策树是一种基本的分类和回归方法,其模型具有可解释性,易于理解和实现。本攻略将介绍如何使用Python编写决策树分类器,包括特征选择、树的生成和剪枝等过程。 步骤 1. 准备数据和环境 选择合适的数据集和环境,本攻略使用的是sklearn自带的鸢尾花分类数据集和Python 3.6环境。安装必要的库,如nump…

    python 2023年5月18日
    00
  • python搭建简易服务器分析与实现

    下面开始讲解“Python搭建简易服务器分析与实现”的完整攻略。 准备工作 在进行Python搭建简易服务器之前,我们需要进行以下准备工作:1. 了解TCP/IP协议;2. 学习Python socket编程;3. 安装Python环境。 实现过程 导入socket模块 import socket 创建socket对象 server_socket = soc…

    python 2023年6月6日
    00
合作推广
合作推广
分享本页
返回顶部