Python 正则表达式的基本用法 正则表达式是一种文本模式匹配的工具,它用于描述一种字符组成的规则。在文本处理中,正则表达式被广泛用于搜索、替换、匹配、验证等操作。首先举两个正则表达式匹配的实例,然后再简单介绍一下正则表达式的基本用法。
匹配邮箱地址
邮箱地址一般由 用户名@域名
构成。匹配邮箱地址的正则表达式如下:
import re
pattern = r'^w ([- .]w )*@w ([-.]w )*.w ([-.]w )*$'
email = 'xiaolanzao@qq.com'
if re.match(pattern, email):
print('匹配成功')
else:
print('匹配失败')
解析:
"^"
:匹配字符串的开头。"w "
:匹配由字母、数字、下划线组成的一组字符。"[- .]"
:匹配特定的字符"-"
、" "
、"."
。"w *"
:匹配由字母、数字、下划线组成的一组字符,可以出现零次或多次。"@"
:匹配特定的字符"@"
。"w "
:同上。"[-.]"
:匹配特定的字符"-"
、"."
。"w *"
:同上。"."
:匹配特定的字符"."
。"w "
:同上。"[-.]"
:匹配特定的字符"-"
、"."
。"w *
":同上。"$"
:匹配字符串的结尾。
匹配电话号码
电话号码可以包含数字、空格、连字符"-"等字符。匹配电话号码的正则表达式如下:
代码语言:javascript复制import re
pattern = r'^(d{3}-|d{4}-)?(d{8}|d{7})$'
phone_number = '010-12345678'
if re.match(pattern, phone_number):
print('匹配成功')
else:
print('匹配失败')
解析:
"^"
:匹配字符串的开头。"(d{3}-|d{4}-)?"
:将"(d{3}-|d{4}-)"
作为一个组,匹配其中的字符出现零次或一次。"d"
:匹配数字。"{3}"
:匹配前面的字符出现3次。"|"
:将两个单元进行或运算,匹配其中任意一个。"(d{8}|d{7})"
:将"(d{8}|d{7})"
作为一个组,匹配其中的字符出现一次。"d"
:匹配数字。"{8}"
:匹配前面的字符出现8次。"|"
:将两个单元进行或运算,匹配其中任意一个。"$"
:匹配字符串的结尾。
以上两个例子仅是正则表达式的简单应用,正则表达式在实际应用中还有许多高级用法,需要根据具体情况进行调整。
用法1:字符匹配
正则表达式可以匹配一个或多个字符。常用的字符匹配符号包括:
"."
:匹配任意单个字符(除了换行符)。"[ ]"
:匹配中括号中列出的任意单个字符。如[abc]可以匹配字符"a"、“b”、“c"中的任意一个。"[^ ]"
:匹配中括号中没有列出的任意单个字符。如[^abc]可以匹配除了字符"a”、“b”、"c"之外的任意一个字符。
用法2:重复匹配
正则表达式可以匹配一个或多个重复出现的字符。常用的重复匹配符号包括:
"*"
:匹配前面的字符零次或多次。" "
:匹配前面的字符一次或多次。"?"
:匹配前面的字符零次或一次。"{n}"
:匹配前面的字符恰好出现n次。"{n,}"
:匹配前面的字符至少出现n次。"{n,m}"
:匹配前面的字符出现n到m次。
用法3:边界匹配
正则表达式可以匹配字符串的开头和结尾。常用的边界匹配符号包括:
"^"
:匹配字符串的开头。"$"
:匹配字符串的结尾。
用法4:分组匹配
正则表达式可以将多个字符组合成一个单元,并对这个单元进行重复匹配。常用的分组匹配符号包括:
"( )"
:将其中的字符组合成一个单元。"|"
:将两个单元进行或运算,匹配其中任意一个。
总结
上述仅是正则表达式的基本用法,正则表达式还有许多高级特性,如:贪婪匹配、非贪婪匹配、捕获组、预测先行匹配等等。正则表达式需要掌握一定的语法和规则,才能灵活运用。