什么是正则表达式?
正则表达式(Regular Expression)通常被用来检索、替换那些符合某个模式(规则)的文本。
此处的Regular即是规则、规律的意思,Regular Expression即“描述某种规则的表达式”之意。
本文收集了一些常见的正则表达式用法,方便大家查询取用,并在最后附了详细的正则表达式语法手册。
案例包括:邮箱、身份证号、手机号码、固定电话、域名、IP地址、日期、邮编、密码、中文字符、数字、字符串
Python如何支持正则?
我用的是python来实现正则,并使用Jupyter Notebook编写代码。
Python通过re模块支持正则表达式,re 模块使 Python 语言拥有全部的正则表达式功能。
这里要注意两个函数的使用:
re.compile用于编译正则表达式,生成一个正则表达式( Pattern )对象;
.findall用于在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
# 导入re模块 import re
PS:对于小白来说自学也不是件容易的事,需要花相当的时间去适应python的语法逻辑,而且要坚持亲手敲代码,不断练习。
如果对自己没有自信,也可以考虑看编程课程,跟着老师的节奏去学习,能比较快地掌握python语法体系,也能得到充分的案例练习。
近期有很多朋友通过私信咨询有关Python学习问题。为便于交流,点击蓝色自己加入讨论解答资源基地
1.邮箱
包含大小写字母,下划线,阿拉伯数字,点号,中划线
表达式:
[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)
案例:
pattern = re.compile(r"[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(?:\.[a-zA-Z0-9_-]+)") strs = '我的私人邮箱是zhuwjwh@outlook.com,公司邮箱是123456@qq.org,麻烦登记一下?' result = pattern.findall(strs) print(result) ['zhuwjwh@outlook.com', '123456@qq.org']
2. 身份证号
xxxxxx yyyy MM dd 375 0 十八位
-
地区: [1-9]\d{5}
-
年的前两位: (18|19|([23]\d)) 1800-2399