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

学会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图像处理库

    下面是推荐五个常用的Python图像处理库的攻略。 1. Pillow Pillow是Python Imaging Library (PIL) 的一个克隆版本,可以很方便的处理一些图像操作,比如加载图像、调整大小、旋转、裁剪、增加滤镜等等。下面是一个示例代码演示如何使用Pillow进行图像旋转和缩放操作: from PIL import Image # 读取…

    python 2023年5月18日
    00
  • 详解用Python Pillow 改变图像的宽度和高度的比例

    下面我来详细讲解用Python Pillow 改变图像的宽度和高度的比例的完整攻略。具体步骤如下: 安装Pillow库 在Python中,我们需要使用Pillow库来操作图像。可以通过以下命令安装: pip install Pillow 打开图像 首先我们需要打开需要操作的图像。可以使用Image.open()方法打开图像。 from PIL import …

    python-answer 2023年3月25日
    00
  • Apache服务器上的Python cgi

    【问题标题】:Python cgi on apache serverApache服务器上的Python cgi 【发布时间】:2023-04-05 09:10:01 【问题描述】: 我是 python cgi 编程的新手。我已经在 linux mint 上安装了 apache 2.2 服务器,并且在 var/www 文件夹中有我的 html 表单,该文件夹正…

    Python开发 2023年4月5日
    00
  • python生成requirements.txt的两种方法

    下面是对于“python生成requirements.txt的两种方法”的详细讲解。 生成requirements.txt的两种方法 在Python项目中,我们通常需要记录下项目中使用到的依赖包及其版本号,并且这些依赖包的版本可能会随时更新,这时我们就需要使用 requirements.txt 文件来记录依赖包的详细信息。下面介绍两种方法来生成 requir…

    python 2023年5月13日
    00
  • 解读python正则表达式括号问题

    解读Python正则表达式括号问题 正则表达式是一种强大的文本处理工具,可以用于各种文本处理任务,如数据清洗、文本分析、信息提取等。Python中,我们可以使用模块来操作正则表达式。本攻略将详细讲解Python正则表达式中括号的使用,包括捕获组、非获组、正向前瞻、反向前瞻等概念,以及如何使用括号进行文本匹配。 捕组 捕获组正则表达式中用括号()括来的部分,可…

    python 2023年5月14日
    00
  • python中关于时间和日期函数的常用计算总结(time和datatime)

    一、time模块 1.1、time模块简介 time模块提供了时间处理函数,包括获取当前时间、格式化时间、休眠等操作。主要包含以下几个常用函数: time(): 获取当前时间戳,即从1970年1月1日零时开始到当前时间的秒数。 localtime(): 获取当前本地时间,返回一个包含年、月、日、时、分、秒等信息的time.struct_time对象。 mkt…

    python 2023年6月2日
    00
  • 一篇文章带你入门Python正则表达式

    下面是详细的攻略: 一篇文章带你入门Python正则表达式 正则表达式是一种用于匹配字符串的模式,可以用于搜索、替换、验证等操作。Python提供了re模块,可以方便地使用正则表达式。本文将介绍Python正则表达式的基本语法和常用函数,包括示例说明。 正则表达式的基本语法 正则表达式由普通字符和特殊字符组成。普通字符表示它本身,特殊字符表示一类字符。下面是…

    python 2023年5月14日
    00
  • Python的三种主要模块介绍

    Python是一种高级编程语言,具有广泛的应用领域。Python的三种主要模块是标准库、第三方库和自定义库。本文将详细介绍这三种模块,并提供两个示例。 标准库 Python的标准库是Python自带的一组模块,包含了大量的常用功能,如文件操作、网络通信、正则表达式、日期时间处理等。标准库是Python开发的基础,可以帮助开发者快速实现各种功能。 以下是一个示…

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