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"及其后面的字母的字符串。