python正则表达式的使用

Python正则表达式的使用

正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割字符串。在Python中,模块提供了正表达式持方便进行字符串的处理。本文将详细讲解Python正则表达式的使用,包括正则表达语法、模块的常用函数以及示例说明。

正则表达式语法

正则表达式语法是一组特殊字符符号用于描述字符串模式。下面是一些常用正则表达式语法:

  • .:匹配任意字符,除了换行符。
  • *:匹配前面的字符零次或多次。
  • +:匹配前面的字符一次或多次。
  • ?:匹配前面的字符零次或一次。
  • ^:匹字符串的开头。
  • $:匹配字符串的结尾。
  • []:匹配括号内的任意一个字符。
  • ():标记一个子表达的开始和结束位置。
  • |:匹配两个或多个正则表达式之一。

re模块的常用函数

re模块提供了多个函数用于正则达式的处理,下面是一些常用的函数:

  • re.search(pattern, string, flags=0):在字符串中查找匹配项,返回一个Match对象。
  • re.match(pattern, string, flags=0):从字符串的开头开始匹配,返回一个Match对象。
  • re.findall(pattern, string, flags=0):查找字符串中所有匹配项,返回一个列表。
  • re.sub(pattern, repl string, count=0, flags=0):用指定的字符串替换匹配项,返回替换后的字符串。
  • re.split(pattern, string, maxsplit=0, flags=0):根正则表达式分割字符串,返回一个列表。

示例说明

下面是两个例说明,演示何使用Python正则表达式进行字符串的处理。

示例1:匹配邮箱地址

import re

# 定义正则表达式
pattern = r'\w+@\w+\.\w+'

# 定义字符串
string = 'My email is example123@gmail.com'

# 使用re.search()方法查找匹配项
match = re.search(pattern, string)

# 输出匹配
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达\w+@\w+\.\w+,用于匹配邮箱地址。然后,我们定义了一个字符串My email is example123@gmail.com,其中包含邮箱地址。最后,我们使用re.search()方法查找匹配项,并输出匹配结果example123@gmail.com

示例2:匹配HTML标签

import re

# 定义正则表达式
pattern = r'<.*?>'

# 定义字符串
string = '<p>This is a paragraph.</p>'

# 使用re.findall()查找匹配
matches = re.findall(pattern, string)

# 输出匹配结果
for match in matches:
    print(match)

在这个示例中,我们定义一个正则表达式<.*?>,用于匹配HTML标签。后我们定义了一个字符串<p>This is a paragraph.</p>,其中包含HTML标签。最后,我们使用re.findall方法查找所有匹配项,并输出匹配结果<p></p>

50个常见正则表达式

下面是50个常见的Python验证正则表达式包括正则表达式语法、re模块的常用以及示例说明。

1. 匹配整数

import re

# 定义正则表达式
pattern = r'^[+-]?\d+$'

# 定义字符串
string = '123'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹配结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^[+-]?\d+$,用于匹配整数。然后,我们定义了一个123,其中包含数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果123

2. 匹配浮点数

```pythonimport re

定义正则表达式

pattern = r'^[+-]?\d+(.\d+)?$'

定义字符串

string = '3.14'

使用re.match()方法查找匹配项

match = re.match(pattern string)

输出匹配结果

if match:
print(match.group())
else:
print('No match')


在这个示例中,我们定义了一个正则表达式`^[+-]?\d+(\.\d+)?$`,用于匹配浮点数。然后,我们定义了一个字符串`314`,其中包含浮点数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果`3.14`。

### 3. 匹配正整数

```python
import re

# 定义正则表达式
pattern = r'^[1-9]\d*$'

# 定义字符串
string = '123'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹配结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^[1-9]\d*$,用于匹配正整数。然后,我们定义了一个字符串123,其中包含正整数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果123

4 匹配负整数

```pythonimport re

定义正则表达式

pattern = r'^-[1-9]\d*$'

定义字符串

string = '-123'

使用re.match()方法查找匹配项

match = re.match(pattern, string)

输出匹配结果

if match:
print(match.group())
else:
print('No match')


在这个示例中,我们定义了一个正则表达式`^-[1-9]\d*$`,用于匹配负整数。然后,我们定义了一个字符串`-123`,其中包含负整数。最后,我们使用re.match()方法找匹配项,并输出匹配结果`-123`。

### 5. 匹配非负整数

```python
import re

# 定义正则表达式
pattern = r'^\d+$'

# 定义字符串
string = '123'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹配结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^\d+$,用于匹配非负整数。后,我们定义了一个字符串123,其中包含负数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果123

6. 匹配非正整数

import re

# 定义正则表达式
pattern = r'^-[1-9]\d*|0$'

# 定义字符串
string = '-123'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹配结果
if match:
   (match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^-[1-9]\d*|0$,用于匹配非正整数。然后,我们定义了一个-123,其中包含非正整数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果-123

7. 匹配正浮点数

import re

# 定义正则表达式
pattern = r'^[1-9d*\.\d+|\.\d*[1-9]\d*$'

# 定义字符串
string = '3.14'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹配结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^[1-9]\d*\.\d+|[-9]\d*\.\d+|0\.\d*[1-9]\d*$,用于匹配正浮点数。然后,我们定义了一个字符串3.14,其中包含正浮点数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果3.14

8. 匹配负浮点数

import re

# 定义正则表达式
pattern = r'^-[1-9]\d*\.\d+|-0\.\d*[1-9]\d*$'

# 定义字符串
string = '-3.14'

# 使用re(pattern, string)

# 输出匹配
if match:
    print.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^-[1-9]\d*\.\d+|-0\.\d1-]\d*$,用于匹配负浮点数。然后,我们定义了一个字符串-3.14,其中包含负浮点数。最后,我们使用re.match()方法查找匹配项,并输出匹配-3.14

9. 匹配非负浮点数

import re

# 定义正则表达式
pattern = r'^\d+\.\d+|0\.\d*[1-9]\d*|0?\.0+|0$'

# 定义字符串
string = '3.14'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹配结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^\d+\.\d+|0\d*[1-9]\d*|0?\.0+|0$,用于匹配非负浮点数。然后,我们定义了一个字符串3.14,其中包含非负浮点数。最后,我们使用re.match()方法查找匹配,并输出匹配结果3.14

10. 匹配非正浮点数

import re

# 定义正则表达式
pattern = r'^(-([1-9]\d*\.\d+|0\.\d*[1-9]\d*))|0\.0+|0$'

# 定义字符串
string = '-3.14'

# 使用re.match()方法查找匹配
match = re.match(pattern, string)

# 输出匹配结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^(-([1-9]\d*\.\d+|0\.\d*[19]\d*))|0\.0+|0$,用于匹配非正浮点。然后,我们定义了一个字符串-3.14,其中包含非正浮点数。最后,我们使用re.match()方法查找匹配项,并输出匹配结果-3.14

11. 匹配手机号码

import re

# 定义正则表达式
pattern = r'^1[3-9]\d{9}$'

# 定义字符串
string = '13812345678'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹配结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^1[3-9]\d{9}$,用于匹配手机号码。然后,我们定义了一个字符串13812345678,其中包含手机号码。最后,我们使用re.match()查找匹配项,并输出匹配结果13812345678

12. 匹配身份证号码

import re

# 定义正则表达式
pattern = r'^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[02])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dX]$'

# 定字符串
string =110101199003077777'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹配结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中我们定义了一个正则表达式^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dX]$,用于匹配身份证号码。然后,我们定义了一个字符串110101199003077777,其中包含身份证号码。最后,我们使用re.match()方法查找匹配项,并输出匹配结果110101199003077777

13. 匹配URL

import re

# 定义正则表达式
pattern = r'^https?://[\w-]+(\.[\w-]+)+([\w.,?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$'

# 定义字符串
string = 'https://www.example.com/index.html'

# 使用re.match()方法查找匹配项
match = re.match(pattern, string)

# 输出匹结果
if match:
    print(match.group())
else:
    print('No match')

在这个示例中,我们定义了一个正则表达式^https?://[\w-]+(\.[\w-]+)+([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?$,用于匹配URL。然后,我们定义了一个字符串https://www.example.com/index.html,其中包含URL。最后,我们使用re.match()方法查找匹配项,并输出匹配结果https://www.example.com/index.html

14. 匹配IP地址

```python
import re

定义正则表达式

pattern = r'^((25[0-5]|2[0-4]\d|[01]?\d\d?).){3}(25[0-5]|2[0-4]\d

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python正则表达式的使用 - Python技术站

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

相关文章

  • Python3.0 实现决策树算法的流程

    以下是关于“Python3.0实现决策树算法的流程”的完整攻略: 简介 决策树是一种常见的分类和回归算法,它可以用于处理离散和连续的数据。在本攻略中,我们将介绍如何使用Python3.0实现决策树算法,包括决策树的基本原理、决策树的实现方法、决策树的优化等。 决策树的基本原理 决策树的基本原理是通过对数据进行分割,将数据分成多个子集,每个子集对应一个决策节点…

    python 2023年5月14日
    00
  • python中requests和https使用简单示例

    以下是关于Python中requests和https使用的简单示例: Python中requests和https使用简单示例 在Python中,requests是一个常用的HTTP库,可以用于发送HTTP请求和处理HTTP响应。同时,requests也支持HTTPS协议,可以轻松处理HTTPS请求。以下是Python中requests和https使用的简单示…

    python 2023年5月14日
    00
  • 详解python中自定义超时异常的几种方法

    详解Python中自定义超时异常的几种方法 在Python编程中,经常遇到需要设置超时时间的情况。例如,请求API时,如果API响应过慢,我们可以设置超时时间来避免长时间等待。Python提供了timeout参数来设置超时时间。当超时时间到达时,会抛出TimeoutError异常。但是,有些情况下,我们可能需要自定义超时异常,以便更好地处理异常情况。本文将详…

    python 2023年5月13日
    00
  • python空元组在all中返回结果详解

    当我们在使用Python内置函数all判断一个序列是否所有元素都为True时,如果这个序列是一个空元组,它会返回True。这个行为很可能会造成理解上的困惑,因此需要进行详细的讲解。 什么是空元组 在Python中,元组(tuple)是一种不可变的序列类型。当元组中没有任何元素时,我们称之为空元组。空元组可以使用一对空的括号创建,如下所示: empty_tup…

    python 2023年5月14日
    00
  • Python爬虫实例_利用百度地图API批量获取城市所有的POI点

    确认项目需求 在准备进行Python爬虫的实现之前,我们首先需要明确项目的需求,即我们要爬取的数据是什么,爬取的方式是什么。 本示例中,项目需求是要利用百度地图API获取指定城市的所有POI点,POI点包括名称、经纬度信息等。而爬取的方式是利用Python程序来通过百度地图API实现。 准备工作 在进行爬虫实现之前,我们需要进行一些准备工作,包括: 注册百度…

    python 2023年5月14日
    00
  • Python – Kivy 框架 – Spinner 值列表

    【问题标题】:Python – Kivy framework – Spinner values listPython – Kivy 框架 – Spinner 值列表 【发布时间】:2023-04-06 01:19:01 【问题描述】: 我很难添加从数据库中提取的值(语言)列表,并希望它在 Spinner 小部件中作为值列表可用。 python部分: def …

    Python开发 2023年4月6日
    00
  • python3 实现除法结果为整数

    要让Python3实现除法结果为整数,有以下两种方法: 方法一:整除符号 // 当两个整数相除时,使用整除符号 // 可以得到整除的结果。 示例1:求 $10$ 除以 $3$ 的结果(整除)。 result = 10 // 3 print(result) 输出结果为: 3 示例2:求 $4$ 除以 $2$ 的结果(整除)。 result = 4 // 2 p…

    python 2023年6月5日
    00
  • Numpy中reshape()和resize()方法的区别

    下面是对Numpy中reshape()和resize()方法的详细讲解及说明。 reshape()方法 概述 reshape()方法是将一个数组转化为指定的形状。该方法返回的是一个新的数组,而原数组并没有发生改变。 语法 reshape()方法的语法如下:numpy.reshape(arr, newshape, order=’C’) 参数说明: arr:数组…

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