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日

相关文章

  • python中的二维列表实例详解

    Python中的二维列表实例详解 在Python中,二维列表是一种常用的数据结构,它是由多个列表组成的列表,可以用来表示矩阵、表格等数据结构。本攻略将详细介绍Python中的二维列表,包括二维列表的定义、创建、访问、操作等内容。 二维列表的定义和创建 在Python中,可以使用嵌套列表的方式来定义和创建一个二维列表。以下是一些示例代码: # 定义一个二维列表…

    python 2023年5月13日
    00
  • matplotlib之属性组合包(cycler)的使用

    下面我来详细讲解一下“matplotlib之属性组合包(cycler)的使用”的完整攻略。 什么是属性组合包(cycler) 在绘制图表时,我们通常需要对每一个子图的属性进行设置,例如线条颜色、线型、标记样式等。而在matplotlib中,属性组合包(cycler)可以让我们更加方便地对这些属性进行组合和设置。 属性组合包(cycler)本质上是一个包含多个…

    python 2023年6月3日
    00
  • Python:随着数字计数的增加,如何转换以逗号分隔的数字?

    【问题标题】:Python: How to convert a number which ll separated by comma as number count increases?Python:随着数字计数的增加,如何转换以逗号分隔的数字? 【发布时间】:2023-04-07 15:12:01 【问题描述】: 我有一个类似的数字:100 我在这里展示它…

    Python开发 2023年4月8日
    00
  • 手把手教你使用Python解决简单的zip文件解压密码

    下面就手把手教你使用Python解决简单的zip文件解压密码的完整攻略: 1. 安装Python库 解析zip文件需要使用zipfile库,因此需要先安装该库,可以通过在终端输入以下命令来完成安装: pip install zipfile 2. 加载zip文件 使用Python打开zip文件需要使用zipfile.open()函数,该函数的参数需要传入zip…

    python 2023年6月3日
    00
  • Python之requests的使用(二)

    以下是关于Python之requests的使用(二)的攻略: Python之requests的使用(二) requests是Python中一个流行的HTTP库,可以用于向Web服务器发送HTTP请求和接收响应。以下是Python中requests模块的更多用法: 发送JSON数据 以下是使用requests模块发送JSON数据的示例: import requ…

    python 2023年5月14日
    00
  • Python基础知识点 初识Python.md

    下面是对于“Python基础知识点 初识Python.md”的完整攻略。 标题解析 该文档的标题为“Python基础知识点 初识Python”,由此我们可以猜测出文档主要介绍的内容:Python的基础知识。标题也十分简洁,体现出本文的简洁明了的风格。此外,标题中还包含“初识Python”这样的词语,说明本文适用于初学者。注意,本文标题中的每个单词都首字母大写…

    python 2023年5月30日
    00
  • python中scikit-learn机器代码实例

    针对“python中scikit-learn机器代码实例”,我整理了以下完整攻略: Scikit-learn简介 Scikit-learn是一个用于机器学习的Python库,它基于NumPy、SciPy和matplotlib等科学计算工具,提供了各种机器学习算法的实现,包括分类、回归、聚类、降维等。它的特点是简单易用、功能齐全、高效稳定、开源免费,是Pyth…

    python 2023年5月23日
    00
  • opencv-python基本图像处理详解

    OpenCV-Python基本图像处理详解 OpenCV是一种广泛使用的开源计算机视觉和机器学习软件库。它可以用于各种任务,如图像和视频处理,人脸检测,物体识别,光流估计等。OpenCV-Python是OpenCV库的Python接口,它提供了许多方便的实用工具,可以轻松编写计算机视觉应用程序。在这个攻略中,我们将介绍OpenCV-Python的基本图像处理…

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