学会Python正则表达式,就看这20个例子(脚本之家修正版)

yizhihongxing

学会Python正则表达式,就看这20个例子(脚本之家修正版)

正则表达式是一种强大的文本处理工具,可以用于各种本处理任务,如数据清洗、文本分析、信息提取等。本攻略将介绍20个Python正则表达式的例子,助您更好地掌握正则表达式的用法。

例子1:匹配数字

import re

text = 'The price the product is $20'
result = re.findall(r'\d+', text)
print(result)

在上面的代码中,我们使用正则表达式\d+匹配文本中的数字。+表示匹配前面的字符一次或多。运行代码后,输出结果为['20']

例子2:匹配单词

import re

text = 'The quick brown fox jumps over the lazy dog'
result = re.findall(r'\b\w+\b', text)
print(result)

在上面的代码中,我们使用正则表达\b\w+\b匹配文本中的单词。\b表示单词的边界,\w+表示匹配一个或多个字母、数字或下划线。运行代码后,输出结果为['', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']

例子3:匹配邮箱地址

import re

text = 'My email is john@example.com'
result = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text)
print(result)

在上面的代码中,我们使用正则表达式\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b匹配文本中的邮箱。运行代码,输出结果为['john@example.com']

例子4:匹配URL链接

import re

text = 'Check out my website at https://www.example.com'
result = re.findall(r'https?://\S+', text)
print(result)

在上面的代码中,我们使用正则表达式https?://\S+匹配文本中的URL链接。https?表示匹配httphttps\S+表示匹配一个或多个非空白字符。运行代码后,输出结果为['httpswww.example.com']

例子5:匹配IP地址

import re

text = 'My IP address is 192.168.0.1'
result = re.findall(r'\b(?:\d{1,3}\.){3}\d{1,3}\b', text)
print(result)
`

在上面的代码中,我们使用正则表式`\b(?:\d{1,3}\.){3}\d{1,3}\b`匹配文本中的IP地址。d{1,3}\.`表示匹配一个或三个数字和一个点号,`(?:...)`表示非捕获分组,`\b`表示单词的边界。运行代码后,输出结果为`['192.168.01']`。

## 例子6:匹配日期

```python
import re

text = 'Today is 2022-01-01'
result = re.findall(r'\d{4}-\d{2}-\d{2}', text)
print(result)

在上面的代码中,我们使用正则表达式\d{4}-\d{2\d{2}匹配文本中的日期。\d{4}表示匹配四个数字,-表示匹配一个短横线,\{2}表示匹配两个数字。运行代码后,输出结果为['2022-01-01']

例子7:匹配手机号码

import re

text = 'My phone number is 123-456-7890'
 = re.findall(r'\d{3}-\d{3}-\d{4}', text)
print(result)

在上面的代码中,我们使用正则表达式\d{3}-\d{3}-\d{4}匹配文本中的手机号码。\d{3}表示匹配三个数字,-表示匹配一个短横线,\d{4}表示匹配四个数字。运行代码后,输出结果为['123-456-7890']

例子8:匹配HTML标签

import re

text = '<h1>Hello, world!</h1>'
result = re.findall(r'<.*?>', text)
print(result)

在上面的代码中,我们使用正则表达式<.*?>匹配文本中的HTML标签。<表示匹配一个左尖括号,.*?表示匹配任意字符,?表示非贪婪匹配,>表示匹配一个右尖括号。运行代码后,输出结果为['<h1>', '</h1>']

例子9:匹配中文字符

import re

text = '你好,世界!'
result = re.findall(r'[\u4e00-\u9fa5]+', text)
print(result)

在上面的代码中,我们使用正则表达式[\u4e00-\9fa5]+匹配文本中的中文字符。[\u4e00-\u9fa5]表示匹配一个中文字符,`表示匹配一个或多个中文字符。运行代码后,输出结果为['你好', '世界']`。

例子10:匹配身份证号码

import re

 = 'My ID number is 110101199001011234'
result = re.findall(r'\d{17}[\d|x]|\d{15}', text)
print(result)

在上面的代码中,我们使用正则表达式\d{17}[\d|x]|\d{15}匹配文本中身份证号码。\d{17}表示匹配17个数字,[\d|x]表示匹配一个数字或字母x`表示或,\d{15}表示匹配15个数字。运行代码后,输出结果为['110101199001011234']`。

例子11:匹配邮政编码

import re

text = 'My zip code is 100101'
result = re.findall(r'\b\d{6}\b', text)
print(result)

在上面的代码中,我们使用正则表达式\b\d{6}\b匹配文本中的邮政编码。\d{6}表示匹配6个数字,\b表示单词的边界。运行代码后,输出结果为['100101']

例子12:匹配QQ号码

import re

text = 'My QQ number is 123456789'
result = re.findall(r'[1-9]\d{4,10}', text)
print(result)

在上面的代码中,我们使用正则表达式[1-9]\d{4,10}匹文本的QQ号码。[1-9]表示匹配一个非零数字,\d{4,10}表示匹配4到10个数字。运行代码后,输出结果为['123456789']

例子13:匹配微信号```python

import re

text = 'My WeChat ID is wx123456'
result = re.findall(r'[a-zA-Z][-_a-zA-Z0-9]{5,19}', text)
print(result)


在上面的代码中,我们使用正则表达式`[a-zA-Z][-_a-zA-Z0-9]{,19}`匹配文本中的微信号。`[a-zA-Z]`表示匹配一个字母,`[-_a-zA-Z0-9]{,19}`表示匹配5到19个字母、数字或下划线。运行代码后,输出结果为`['wx123456']`。

## 例子14:匹配MAC地址

```pythonimport re

text = 'My MAC address is 00:11:22:33:44:55'
result = re.findall'[0-9a-fA-F]{2}([-:])[0-9a-fA-F]{2}(?:\1[0-9a-fA-F]{2}){4}', text)
print(result)

在上面的代码中,我们使用正则表达式[0-9a-fA-F]{2}([-:])[0-9a-fA-F]{2}(?:\1[0-9a-fA-F]{2}){4}匹配文本中的MAC地址。[0-9a-fA-F]{2}表示匹配两个十六进制数字,([-:])表示匹配一个短横线或号,并将其保存到分组中,(?:...)表示非捕获分组,\1表示引用第一个分组,{4表示复4次。运行代码后,输出结果为['00:11:22:33:44:55']

例子15:匹配注释

import re

text = '<!-- This is a comment -->'
result = re.findall(r'<!--(.*?)-->', text)
print(result)

在上面的代码中,我们使用正则表达式<!--(.*?)-->匹配文本中的HTML注释。<!--表示匹配一个左注释符,(.*?)表示匹配任意字符,?表示非贪婪匹配,-->表示匹配一个右注释符。运行代码后,输出结果[' This is a comment ']

例子16:匹配XML标签

import re

text = '<book><title>Python Programming</title><author>John Doe</author></book>'
result = re.findall(r'<(\w+)>(.*?)</\1>', text)
print(result)

在上面的代码中,我们使用正则表达式<(\w+)>(.*?)<!--\1-->匹配文本中的XML标签。<(\w+)>表示匹配一个左标签符和标签名,并将标签名保存到分组中,(.*?)表示匹配任意字符,?表示非贪婪匹配,<!--\1-->表示匹配一个右标签符和标签名。运行代码后,输出结果为[('title', 'Python Programming'), ('author', 'John Doe')]

例子17:匹配HTML标签属性```python

import re

text = 'Example'
result = re.findall(r'<\w+\s+href="([^"]+)".?>(.?)', text)
print(result)


在上面的代码中,我们使用正则表达式`\w+\s+href="([^"]+)".*?>(.*?)</\w+>`匹配文本中的HTML标签属性。`<\w+\s+href="([^"]+)".*?>`表示匹配一个左标签符、标签名、空格、`href`属性和属性值,并将属性值保存到分组中,`.*?`表示匹配任意字符,`?`表示非贪婪匹配,`</\w+>`表示匹配一个右标签符和标签名。运行代码后,输出结果为`[('https://www.example.com', 'Example')]`。

## 例子18:匹配HTML标签内容

```python
import re

text = '<h1>Hello, world!</h1>'
result = re.findall(r'<.*?>(.*?)</.*?>', text)
print(result)
`

在上面的代码中,我们使用正则表达式`<.*?>(.*?)</.*?>`匹配文本中的HTML标签。`<.*?>`表示匹配一个左标签符和任意字符,`.*?`表示匹配任意字符,`?`表示非贪婪配,`</.*?>`表示匹配一个右标签符。运行代码后,输出结果为`['Hello, world!']`。

## 例子19:替换文本中的空格

```python
import re

 = 'The quick brown fox jumps over the lazy dog'
result = re.sub(r'\s+', '-', text)
print(result)

在上面的代码中,我们使用正则表达式\s+匹配文本中的空格,并用短横线替换它们。\s+表示匹配一个或多个空格。运行代码后,输出结果为The-quick-brown-fox-jumps-over-the-lazy-dog

例子20:替换文本中的HTML标签

import re

text = '<h1>Hello, world!</h1>'
result = re.sub(r'<.*?>', '', text)
print(result)

在上面的代码,我们使用正则表达式<.*?>匹文本中的HTML标签,并将它们替换为空字符串。<.*?>表示匹配一个HTML标签。运行代码后,输出结果为Hello, world!

总结

本攻略介绍了20个Python正则表达式的例子,帮助您更好地掌握正则表达式的用法。正则表达是一种强大的文本处理工,可以用于各种文本处理任务,如数据清洗、文本分析、信息提取等。熟练掌握正则表达式的用,可以大大提高我们的工作效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:学会Python正则表达式,就看这20个例子(脚本之家修正版) - Python技术站

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

相关文章

  • 如何使用Python连接和操作SQL Server数据库?

    在Python中,可以使用pyodbc模块连接和操作SQL Server数据库。以下是Python使用pyodbc模块连接和操作SQL Server数据库的完整攻略,包括连接SQL Server数据库、表、插入数据、查询数据更新数据、删除数据等操作。 连接SQL Server数据库 在Python中,可以使用pyodbc模块连接SQL Server数据库。以…

    python 2023年5月12日
    00
  • 浅谈python爬虫使用Selenium模拟浏览器行为

    浅谈Python爬虫使用Selenium模拟浏览器行为 在本攻略中,我们将介绍如何使用Python爬虫使用Selenium模拟浏览器行为。我们将使用Python的Selenium库来实现这个过程。 步骤1:安装Selenium库 使用以下命令可以安装Selenium库: pip install selenium 步骤2:安装浏览器驱动 使用Selenium库…

    python 2023年5月15日
    00
  • python中np.random.permutation函数实例详解

    Python中np.random.permutation函数实例详解 概述 np.random.permutation()函数可以返回一个洗牌后的序列或数组。它的作用类似于shuffle()函数,只是它并不会改变原始序列或数组。 语法 numpy.random.permutation(x) 参数解释: x :表示一个序列或数组,可以是ndarray、list…

    python 2023年5月13日
    00
  • python动态规划算法实例详解

    下面是关于“Python动态规划算法实例详解”的完整攻略。 1. 动态规划算法简介 动规划算法是一种用于解决最优化的算法,它将问题分解为子问题,并使用递推的方式求解子问题的最优解,最终得到原问题的最优解。在Python中,我们可以使用动态规划算法来解决一些复杂的问题,例如背包问题、最长公共子序列问题等。 2. Python实现动态规划算法 2.1 背包问题 …

    python 2023年5月13日
    00
  • 使用pickle存储数据dump 和 load实例讲解

    使用pickle模块可以将Python中的复杂数据类型,如字典、列表等,转换为二进制文件或字符串进行存储和传输。其中,dump操作将Python数据序列化为二进制文件,load操作将二进制文件反序列化为Python数据类型。接下来,我们介绍如何使用pickle实现数据的dump和load操作。 使用pickle进行数据dump操作 import pickle…

    python 2023年6月2日
    00
  • 基于python实现学生管理系统

    基于Python实现学生管理系统 简介 学生管理系统是一种很常见的应用系统,用于方便学校对学生信息进行管理。本文介绍了如何使用Python语言来实现一个简单的学生管理系统,包括设计数据库、编写程序等。 设计数据库 学生管理系统需要存储的数据包括学生信息、课程信息、成绩信息等。因此,需要设计一个关系型数据库来存储这些信息。在本示例中,我们使用MySQL数据库。…

    python 2023年5月30日
    00
  • Python 中数组和数字相乘时的注意事项说明

    当Python中的数组和数字相乘时,需要注意一些事项,本文将对这些问题进行详细讲解。 数组和数字相乘的含义 在Python中,数组和数字相乘的含义是将数组中的每个元素分别乘以该数字。 例如,以下代码将数组a中的每个元素都乘以2,并赋值回数组a中: a = [1, 2, 3, 4] a = [i * 2 for i in a] print(a) # 输出 [2…

    python 2023年6月5日
    00
  • Python 实现国产SM3加密算法的示例代码

    首先,为了实现国产SM3加密算法,我们需要先了解该算法的基本原理和步骤。SM3算法是一种哈希加密算法,其基本步骤包括填充、消息扩展、压缩和输出。具体步骤如下: 在消息的末尾进行填充,使得消息的总长度为512-bit的整数倍。 对填充后的消息进行分块,每个块的大小为512-bit。 对分块后的消息进行消息扩展,得到扩展后的消息。 对扩展后的消息进行压缩,得到压…

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