1、re.match(pattern, string)
: 从字符串的开头开始匹配模式,如果匹配成功则返回匹配对象,否则返回 None
。
import re
pattern = re.compile(r'\d+')
result = pattern.match("123abc")
if result:
print(result.group()) # 输出: 123
2、re.findall(pattern, string)
: 返回字符串中所有与模式匹配的非重叠子字符串列表。
import re
pattern = re.compile(r'\d+')
result = pattern.findall("abc123def456")
print(result) # 输出: ['123', '456']
3、re.sub(pattern, repl, string)
: 用指定的字符串 repl
替换字符串中所有与模式匹配的子字符串。
import re
pattern = re.compile(r'\d+')
result = pattern.sub('X', "abc123def456")
print(result) # 输出: 'abcXdefX'
4、re.split(pattern, string)
: 使用模式分隔字符串,并返回分隔后的子字符串列表。
import re
pattern = re.compile(r'\s+')
result = pattern.split("Hello World")
print(result) # 输出: ['Hello', 'World']
re
模块中的 group()
方法用于获取正则表达式匹配的文本的子字符串,特别是在正则表达式中使用括号来创建分组时,可以使用 group()
方法来获取每个分组匹配的内容。以下是 group()
方法的常用用法:
1. group()
: 返回整个正则表达式匹配的文本。
import re
pattern = re.compile(r'\d+')
result = pattern.search("abc123def")
if result:
print(result.group()) # 输出: '123'
2. group(n): 返回第 n 个括号分组匹配的文本。分组编号从1开始,0 表示整个模式。
import re
pattern = re.compile(r'(\d+)-(\d+)-(\d+)')
result = pattern.match("2022-10-10")
if result:
print(result.group(1)) # 输出: '2022'
print(result.group(2)) # 输出: '10'
print(result.group(3)) # 输出: '10'
3. groups(): 返回一个包含所有括号分组匹配文本的元组。
import re
pattern = re.compile(r'(\d+)-(\d+)-(\d+)')
result = pattern.match("2022-10-10")
if result:
print(result.groups()) # 输出: ('2022', '10', '10')