赞
踩
正则表达式即用包括但不限于将以上元字符组成的格式字符串与字符串中该规律的片段相比较,并返回找到的字符串片段
元字符用法与占位符类似
如果是想匹配字符串中的 . 这一字符的话则需要加个转义符,即 \ .
如“z|food”能匹配“z”或“food”(此处请谨慎)。“[z|f]ood”则匹配“zood”或“food”
通常会在按照特定规律分割字符串时用到
主要用于精确匹配,可以自定义字符寻找范围,如[0-9a-zA-Z.]可以匹配一个数字、字母或者点,[0-9a-zA-Z.][0-9a-zA-Z_]可以匹配一个数字、字母或者点加上一个一个数字、字母或者下划线组成的两个连续字符
可以匹配任何单词字符的元字符,是比较常用的万能占位元字符
用于表示任何不可见字符,包括空格、制表符、换页符等
如^\d表示必须以数字开头
如\d&表示必须以数字结尾
如0*表示匹配一个连续的0组成的最大片段,但有可能被前面的元字符抢占匹配导致无法匹配到
在能匹配到的情况下至少匹配到一个字符,如果之前的元字符可能会抢占完需要匹配的字符,则+匹配会从前面的末尾抢回一个字符用于返回
可用于限制匹配,如前一位元字符可能全占匹配字符导致后一个元字符无法匹配到字符或者匹配为空时,在前一位元字符后面加上?可以放出所有符合后一位元字符的字符被后一位元字符所匹配
如re.match(r’^(\d+?)(0*)$’, ‘102300’).groups()可以让后面0尽可能多的匹配到对应字符
也可以用于表示只匹配零次或者一次
如“do(es)?”可以匹配“do”或“does”,可以更加灵活的寻找相应字符
如re.match(r’\d+{3}’, ‘102300’).group()只会返回102而不会返回整个字符串
主要用于限制匹配下限,但不设匹配上限,如没有n个对应字符则返回空值
完整的设置下限和上限,没有n个字符则返回为空,多余m个只返回m个字符
从字符串开头开始匹配的方法,如果匹配的字符串开头没有对应字符则会直接返回空值
简单的实例演示:
import re
str_new='you_xiang呵呵@163.com'
ret1=re.match('\w+@163\.com',str_new)
try:
print(ret1.group())
except:
print('没有匹配到数据')
该代码可以简单的验证163邮箱账号,但是无法验证邮箱地址是否合理,如需更加精确的验证则需要编写更加复杂精确的正则表达式,在此不多做成述
从字符串开头开始寻找对应的字符串片段,如果开头没有找到有效字符会继续寻找,直到末尾,找到则返回相应字符串,并且只返回一次
用于查找所有符合要求的字符串
使用语法与前两个相同,但是返回的是一个列表,可以直接输出而不用使用group
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。