Python正则表达式的7个使用典范(推荐)

  • Post category:Python

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

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. 匹配手机号码

import re

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

# 定义字符串
string = 'My phone number is 13812345678'

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

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

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

3. 匹配IP地址

import re

# 定义正则表达式
pattern = r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'

# 定义字符串
string = 'My IP address is 192.168.1.1'

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

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

在这个示例中,我们定义了一个正则表达式\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3},用于匹配IP地址。然后,我们定义了一个字符串My IP address is 192.168.1.1,其中包含IP地址。最后,我们使用re.search()方法查找匹配项,并输出匹配结果192.168.1.1

4. 匹配URL地址

import re

# 定义正则表达式
pattern = r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'

# 定义字符串
string = 'My website is https://www.example.com'

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

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

在这个示例中,我们定义了一个正则表达式https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+,用于匹配URL地址。然后,我们定义了一个字符串My website is https://www.example.com,其中包含URL地址。最后,我们使用re.search()方法查找匹配项,并输出匹配结果https://www.example.com

5. 匹配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>

6. 匹配中文字符

import re

# 定义正则表达式
pattern = r'[\u4e00-\u9fa5]+'

# 定义字符串
string = '这是一段中文字符'

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

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

在这个示例中,我们定义了一个正则表达式[\u4e00-\u9fa5]+,用于匹配中文字符。然后,我们定义了一个字符串这是一段中文字符,其中包含中文字符。最后,我们使用re.findall()方法查找所有匹配项,并输出匹配结果这是一段中文字符

7. 匹配日期格式

import re

# 定义正则表达式
pattern = r'\d{4}-\d{2}-\d{2}'

# 定义字符串
string = 'Today is 2022-01-01'

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

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

在这个示例中,我们定义了一个正则表达式\d{4}-\d{2}-\d{2},用于匹配日期格式。然后,我们定义了一个字符串Today is 2022-01-01,其中包含日期格式。最后,我们使用re.search()方法查找匹配项,并输出匹配结果2022-01-01

结论

本文详细讲解了Python正则表达式的7个使用典范,包括正则表达式语法、re模块的常用函数以及示例说明。使用正则表达式可以方便地进行字符串的匹配、查找、替换和割字符串等操作,需要注意正则表达式的语法和特殊字符含义以保证匹配字符串中的文本。在实际应用中需要根据具体需求选择合适的正则表达式和re模块函数。