以下是一些使用re
模块的详细代码示例,希望能帮助你更好地理解和应用该模块:
示例一:匹配电话号码
import re
def is_phone_number(text):
pattern = r'^\d{3}-\d{3}-\d{4}$'
match = re.search(pattern, text)
if match:
return True
else:
return False
text1 = "123-456-7890"
text2 = "1234567890"
print(is_phone_number(text1))
print(is_phone_number(text2))
在这个示例中,我们定义了一个函数is_phone_number
,用于判断输入的文本是否符合特定的电话号码格式(以-
分隔的 10 位数字)。
示例二:提取网页链接
import re
html_text = "<a href='https://www.example.com'>Example Link</a>"
pattern = r'href="([^"]+)"'
matches = re.findall(pattern, html_text)
for match in matches:
print(match)
这个示例展示了如何从包含 HTML 代码的文本中提取出网页链接。
示例三:替换字符串中的特定模式
import re
text = "Hello, 123 World! 456"
pattern = r'\d+'
replacement = 'XXX'
new_text = re.sub(pattern, replacement, text)
print(new_text)
在这里,我们将文本中的数字替换为XXX
。
示例四:验证电子邮件格式
import re
def is_valid_email(email):
pattern = r'^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$'
match = re.search(pattern, email)
if match:
return True
else:
return False
email1 = "user@example.com"
email2 = "invalid_email"
print(is_valid_email(email1))
print(is_valid_email(email2))
这个示例用于验证电子邮件是否符合常见的格式要求。
示例五:提取文件名和扩展名
import re
file_path = "document.txt"
pattern = r'([^/\\]+)(?:\.(.+))?$'
match = re.search(pattern, file_path)
if match:
file_name = match.group(1)
extension = match.group(2)
print(f"文件名: {file_name}, 扩展名: {extension}")
else:
print("无效的文件路径")
此示例从文件路径中提取出文件名和扩展名。
示例六:匹配特定单词
import re
text = "The quick brown fox jumps over the lazy dog"
pattern = r'\b(quick|lazy)\b'
matches = re.findall(pattern, text)
for match in matches:
print(match)
这里我们找出文本中特定的单词(quick
和lazy
)。
示例七:提取日期信息
import re
date_text = "2023-09-21"
pattern = r'(\d{4})-(\d{2})-(\d{2})'
match = re.search(pattern, date_text)
if match:
year = match.group(1)
month = match.group(2)
day = match.group(3)
print(f"年: {year}, 月: {month}, 日: {day}")
else:
print("无效的日期格式")
这个示例用于从日期字符串中提取出年、月、日等信息。
示例八:匹配特定格式的字符串
import re
text = "123ABC456"
pattern = r'\d+[A-Z]+\d+'
match = re.search(pattern, text)
if match:
print("匹配成功")
else:
print("匹配失败")
此示例验证文本是否符合特定的数字和字母组合的格式。
示例九:分割字符串
import re
sentence = "Hello, World! How are you?"
words = re.split(r'\s+', sentence)
for word in words:
print(word)
通过正则表达式将句子按照空格分割成单词。
示例十:匹配中文文本
import re
chinese_text = "你好,世界!"
pattern = r'[\u4e00-\u9fff]+'
matches = re.findall(pattern, chinese_text)
for match in matches:
print(match)
这个示例展示了如何匹配中文文本。
以上只是re
模块的一些常见应用示例,实际应用中可以根据具体需求进行更多复杂的模式匹配和操作。正则表达式的强大功能使得它在文本处理中非常有用。