Python regex库实例用法总结
什么是正则表达式?
正则表达式(Regular Expression) 是用来匹配字符串中字符组合的一种方式。正则表达式是对字符串操作的一种逻辑公式,就是处理字符串的一种方式。正则表达式也称作正规表示法、正规表示式、正规表达式、规则表达式、常规表示法(英文Regular Expression)。
在Python中,可以使用内置的re模块,来支持使用正则表达式进行字符串匹配操作。
re模块的常用函数
在Python中,re模块提供了多个内置方法来支持正则表达式的匹配。
re.match()方法
re.match()方法,用于尝试从字符串的起始位置匹配一个模式,如果匹配成功,则返回一个匹配的对象,否则返回None。
import re
# 匹配以"Hello"开头,后跟一个或多个字母的字符串
result = re.match(r'Hello\w+', 'Hello, World!')
if result:
print("匹配成功!")
else:
print("匹配失败!")
re.search()方法
re.search()方法,用于在字符串中搜索匹配正则表达式的第一个位置,如果匹配成功,则返回一个增强的匹配对象,否则返回None。
import re
# 搜索一个或多个连续的数字
result = re.search(r'\d+', 'Hello 12345 World!')
if result:
print("匹配成功!")
else:
print("匹配失败!")
re.findall()方法
re.findall()方法,搜索字符串,以列表形式返回全部能匹配的子串。
import re
# 返回一个列表,包含所有数字
result = re.findall(r'\d+', 'Hello 12345 World! 67890')
print(result)
re.sub()方法
re.sub()方法,用于替换字符串中的匹配项。
import re
# 将字符串中所有数字替换成 "?"
result = re.sub(r'\d+', '?', 'Hello 12345 World! 67890')
print(result)
实例演示
下面是两个实例,演示了使用正则表达式,进行字符串的匹配和替换操作。
实例一:匹配所有IP地址
import re
# 判断用户输入的IP地址是否正确
def is_valid_IP(ip):
# 匹配IP地址的正则表达式
pattern = re.compile(r'^(\d{1,3}\.){3}\d{1,3}$')
if pattern.match(ip):
return True
else:
return False
# 测试
print(is_valid_IP('192.168.1.1')) # True
print(is_valid_IP('255.255.255.0')) # True
print(is_valid_IP('10.0.0.1')) # True
print(is_valid_IP('1.2.3.4.5')) # False
实例二:替换字符串中的所有emoji表情
import re
# 替换字符串中的Emoji表情
def remove_emoji(text):
emoji_pattern = re.compile("["
u"\U0001F600-\U0001F64F" # emoticons
u"\U0001F300-\U0001F5FF" # symbols & pictographs
u"\U0001F680-\U0001F6FF" # transport & map symbols
u"\U0001F1E0-\U0001F1FF" # flags (iOS)
"]+", flags=re.UNICODE)
return emoji_pattern.sub(r'', text)
# 测试
print(remove_emoji("Hello \U0001F600")) # Hello
print(remove_emoji("I am hungry \U0001F363")) # I am hungry
总结
在Python中,使用正则表达式,可以方便地进行字符串的匹配和替换。re模块提供了多个内置方法,可以满足各种不同的需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python regex库实例用法总结 - Python技术站