Python正则表达式匹配电话号码和邮箱实例演示,正则表达式的基本用法
  0CQW24vE9IpK 2023年12月15日 36 0



Python 正则表达式的基本用法

  • 匹配邮箱地址
  • 匹配电话号码
  • 用法1:字符匹配
  • 用法2:重复匹配
  • 用法3:边界匹配
  • 用法4:分组匹配
  • 总结



正则表达式是一种文本模式匹配的工具,它用于描述一种字符组成的规则。在文本处理中,正则表达式被广泛用于搜索、替换、匹配、验证等操作。首先举两个正则表达式匹配的实例,然后再简单介绍一下正则表达式的基本用法。

匹配邮箱地址

邮箱地址一般由 用户名@域名 构成。匹配邮箱地址的正则表达式如下:

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+*":同上。
"$":匹配字符串的结尾。

匹配电话号码

电话号码可以包含数字、空格、连字符"-"等字符。匹配电话号码的正则表达式如下:

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:分组匹配

正则表达式可以将多个字符组合成一个单元,并对这个单元进行重复匹配。常用的分组匹配符号包括:

"( )":将其中的字符组合成一个单元。
"|":将两个单元进行或运算,匹配其中任意一个。

总结

上述仅是正则表达式的基本用法,正则表达式还有许多高级特性,如:贪婪匹配、非贪婪匹配、捕获组、预测先行匹配等等。正则表达式需要掌握一定的语法和规则,才能灵活运用。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月15日 0

暂无评论

推荐阅读
  2Fnpj8K6xSCR   2024年05月17日   107   0   0 Python
  xKQN3Agd2ZMK   2024年05月17日   75   0   0 Python
  fwjWaDlWXE4h   2024年05月17日   38   0   0 Python
  Ugrw6b9GgRUv   2024年05月17日   43   0   0 Python
  YpHJ7ITmccOD   2024年05月17日   40   0   0 Python
0CQW24vE9IpK