c语言编程笔录

首页 >   > 笔记大全

笔记大全

Python正则表达式 用于文本匹配和替换

更新时间:2023-12-23

什么是正则表达式

正则表达式是一种用于匹配文本中特定模式的技术。通过使用正则表达式,程序员可以轻松地找到字符串中的特定字符或模式,以便进行进一步的处理。


import re

# 将字符串中所有数字替换为‘0’
text = "Hello123World456"
result = re.sub(r'\d+', '0', text)
print(result)
# 输出: Hello0World0

上述代码中,使用了Python内置的re模块,通过调用re.sub方法,将字符串text中的所有数字替换为‘0’并返回。

正则表达式中的元字符

正则表达式中有一些特殊符号,叫做元字符,它们可以用于匹配字符串中特定的模式。


import re

# 匹配所有由数字组成的字符串
regex = r'\d+'
text = "Hello123World456"
result = re.findall(regex, text)
print(result)
# 输出: ['123', '456']

上述代码中,使用了re模块的findall方法,通过传入正则表达式r'\d+',找到字符串text中所有由数字组成的字符串。

正则表达式中的限定符

在正则表达式中,限定符可以用于指定匹配的数量。


import re

# 匹配字符‘a’至少1次,最多3次
regex = r'a{1,3}'
text = "Hello aaa World"
result = re.findall(regex, text)
print(result)
# 输出: ['a', 'aaa']

上述代码中,使用了re模块的findall方法,通过传入正则表达式r'a{1,3}',找到字符串text中所有匹配字符‘a’至少1次,最多3次的字符串。

正则表达式中的分组

在正则表达式中,还可以使用分组来标记匹配项。


import re

# 匹配整个单词"hello"及其后面的字母
regex = r'(\bhello\b)(\w*)'
text = "hello world hello123"
result = re.findall(regex, text)
print(result)
# 输出: [('hello', ' world '), ('hello', '123')]

上述代码中,使用了re模块的findall方法,通过传入正则表达式r'(\bhello\b)(\w*)',找到字符串text中所有匹配整个单词"hello"及其后面的字母的字符串。