Skip to content

RE

约 202 个字 45 行代码 预计阅读时间 1 分钟

  1. re.match() re.match() 尝试从字符串的起始位置匹配一个模式。如果匹配成功,它将返回一个匹配对象;否则返回 None
import re

pattern = r'\d+'
string = '123abc456'
match = re.match(pattern, string)

if match:
    print(f"匹配成功: {match.group()}")
else:
    print("匹配失败")
  1. re.search() re.search() 在整个字符串中搜索第一个匹配的模式,如果找到则返回一个匹配对象。
import re

pattern = r'\d+'
string = 'abc123def456'
match = re.search(pattern, string)

if match:
    print(f"匹配成功: {match.group()}")
else:
    print("匹配失败")
  1. re.findall() re.findall() 返回字符串中所有非重叠模式的匹配项,作为一个列表。
import re

pattern = r'\d+'
string = 'abc123def456'
matches = re.findall(pattern, string)
print(f"所有匹配项: {matches}")
  1. re.sub() re.sub() 用于替换字符串中每一个匹配正则表达式模式的子串,并返回替换后的字符串。
import re

pattern = r'\d+'
replacement = '#'
string = 'abc123def456'
new_string = re.sub(pattern, replacement, string)
print(f"替换后的字符串: {new_string}")
  1. re.split() re.split() 按照能够匹配的子串将字符串分割后返回列表。
import re

pattern = r'\d+'
string = 'abc123def456'
split_string = re.split(pattern, string)
print(f"分割后的字符串列表: {split_string}")

6. re.compile()

re.compile() 可以将正则表达式模式编译成一个正则表达式对象,以提高匹配的效率,特别是在需要重复使用相同模式时。

import re

pattern = r'\d+'
compiled_pattern = re.compile(pattern)
matches = compiled_pattern.findall('abc123def456')
print(f"编译模式后的匹配项: {matches}")