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

yizhihongxing

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中列表的基本操作汇总

    Python中列表的基本操作汇总 在Python编程中,列表是一种非常常用的数据类型,它可以存储多个元素,并且支持各种操作。本文将详细介绍Python中列表基本操作,包括创建、访问、添加、删除、修改、排序和遍历等操作。 列表的创建 在Python中,我们可以使用括号[]或list()函数来创建一个列表。具体来说,我们可以使用方括号[]将多个元素拼接在一起,形…

    python 2023年5月13日
    00
  • Python sklearn转换器估计器和K-近邻算法

    以下是关于“Python sklearn转换器估计器和K-近邻算法”的完整攻略: 简介 在机器学习中,转换器和估计器是两个重要的概念。转换器用于将数据转换为可用于机器学习的格式,而估计器用于训练和预测模型。本教程将介绍如何使用Python中的sklearn库实现转换器和估计器,并讨论如何使用K-近邻算法进行分类。 步骤 1. 导入库和数据 首先,我们需要导入…

    python 2023年5月14日
    00
  • 详解如何使用Python实现删除重复文件

    如何使用 Python 实现删除重复文件? 1. 查找重复文件 使用Python可以很方便地查找重复文件。其中,可以使用hashlib模块计算文件的哈希值,来判断是否为同一个文件。最简单的实现步骤如下所示。 遍历所需要查找的目录,找出其中所有的文件。 对于每一个文件,计算文件的哈希值。 如果哈希值等于目录中的其他某个文件的哈希值,则这两个文件为重复文件。 将…

    python 2023年6月3日
    00
  • Python中变量的定义方式是什么?

    在Python中,变量的定义方式相对简单,并且可以在不同的阶段进行修改。下面是Python中变量的定义方式的完整攻略: 变量的定义 变量可被视为一个存储值的名称。在Python中,定义变量不需要显示地标明其类型。当变量被赋值时,Python会根据赋值的类型确定变量的类型。以下是定义变量的语法: variable_name = variable_value 其…

    python 2023年4月19日
    00
  • 如何在Python上逐行填充空矩阵?

    【问题标题】:How to fill empty matrix row by row on Python?如何在Python上逐行填充空矩阵? 【发布时间】:2023-04-04 23:55:01 【问题描述】: 我需要创建一个空矩阵,用列表逐行填充它。列表中的每一项都必须是数组中的一项。 list_1[“1″,”2”] list_2[“3″,”4”] ad…

    Python开发 2023年4月6日
    00
  • Python3 hashlib密码散列算法原理详解

    以下是关于“Python3 hashlib密码散列算法原理详解”的完整攻略: 简介 Python3 hashlib模块提供了多种密码散列算法,包括MD5、SHA-1、SHA-224、SHA-256、SHA-384和SHA-512等。密码散列算法是一种将任意长度的消息压缩为固定长度散列值的算法,通常用于密码存储和验证。在本教程中,我们将介绍Python3 ha…

    python 2023年5月14日
    00
  • Python Pandas中布尔索引的用法详解

    下面是“Python Pandas中布尔索引的用法详解”的完整攻略。 什么是布尔索引 在 Pandas 中,布尔索引是通过一组布尔值来过滤 DataFrame 中的数据的操作。 布尔索引直接使用的是布尔值,即 True 和 False。布尔值会根据布尔表达式计算结果,从而选取符合条件的数据。在 Pandas 中,布尔表达式通常是与(&)、或(|)和非…

    python 2023年5月13日
    00
  • Python 居然可以在 Excel 中画画你知道吗

    当然,我非常乐意为您讲解如何在Excel中使用Python画图。接下来是完整的实例教程及示例说明。 准备工作 首先,您需要确保以下工具及环境已安装并配置正确: Python pip pandas openpyxl xlsxwriter Jupyter Notebook 或其他编辑器(例如VS Code、PyCharm等) 如果您尚未安装以上工具或环境,请按照…

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