import re
text = "Hello, 12345, 23456"
# text = "Hello"
pattern = r'\d{5}' # 单个匹配
# 扫描整个字符串并返回第一个成功的匹配
match = re.search(pattern, text)
print(match) # 如果没匹配到, 输入None, 此时不能使用group方法
print(match.group()) # 'NoneType' object has no attribute 'group'
if match: # 存在 即 if match != None
result = match.group() # 获取完整匹配的字符串
print("Match found:", result)
else:
print("No match found")
<re.Match object; span=(7, 12), match='12345'>
12345
Match found: 12345
In [41]:
import re
text = "John Doe, Ann, Bob, johndoe@example.com"
# 匹配名字和邮箱的模式,使用括号分组
pattern = r'(\w+) (\w+), (\S+)' # 多个匹配
# 在字符串中搜索匹配的模式
match = re.search(pattern, text)
print(match)
print(match.group()) # 返回全部多个匹配的第一个结果 如果没有匹配结果 会报错
print(match.groups())
if match:
# 获取第一个括号分组(名字)
first_name = match.group(1)
print("First Name:", first_name)
# 获取第二个括号分组(姓氏)
last_name = match.group(2)
print("Last Name:", last_name)
# 获取第三个括号分组(邮箱)
email = match.group(3)
print("Email:", email)
else:
print("No match found")
<re.Match object; span=(0, 14), match='John Doe, Ann,'>
John Doe, Ann,
('John', 'Doe', 'Ann,')
First Name: John
Last Name: Doe
Email: Ann,
In [40]:
import re
text = "John Doe, johndoe@example.com"
# 匹配名字和邮箱的模式,使用括号分组
pattern = r'(\w+) (\w+), (\S+)'
# 在字符串中搜索匹配的模式
match = re.search(pattern, text)
if match:
# 获取所有括号分组的匹配结果
groups = match.groups()
print(groups) # groups有别于group方法
# 分别输出每个分组的匹配结果
for i, group in enumerate(groups, start=1):
print(f"Group {i}: {group}")
else:
print("No match found")
('John', 'Doe', 'johndoe@example.com')
Group 1: John
Group 2: Doe
Group 3: johndoe@example.com