网站被攻击会影响收录么,成都专业的网站建设公司,汕头中小企业网站制作,镇江丹阳怎么样正则表达式#xff0c;又称规则表达式#xff08;Regular Expression#xff09;#xff0c;是使用单个字符串来描述、匹配某个句法规则的字符串#xff0c;常被用来检索、替换那些符合某个模式#xff08;规则#xff09;的文本。 简单来说#xff0c;正则表达式就是使…正则表达式又称规则表达式Regular Expression是使用单个字符串来描述、匹配某个句法规则的字符串常被用来检索、替换那些符合某个模式规则的文本。 简单来说正则表达式就是使用字符串定义规则并通过规则去验证字符串是否匹配。
比如验证一个字符串是否是符合条件的电子邮箱地址只需要配置好正则规则即可匹配任意邮箱。
比如通过正则规则 (^[\w-](\.[\w-])*[\w-](\.[\w-])$) 即可匹配一个字符串是否是标准邮箱格式 但如果不使用正则使用if else来对字符串做判断就非常困难了。
正则的三个基础方法
Python正则表达式使用re模块并基于re模块中三个基础方法来做正则匹配。
分别是match、search、findall 三个基础方法
re.match(匹配规则 被匹配字符串)
从被匹配字符串开头进行匹配 匹配成功返回匹配对象包含匹配的信息匹配不成功返回空。 re.search(匹配规则 被匹配字符串)
搜索整个字符串找出匹配的。从前向后找到第一个后就停止不会继续向后 整个字符串都找不到返回None re.findall(匹配规则 被匹配字符串)
匹配整个字符串找出全部匹配项 找不到返回空list: [] 元字符匹配
正则最强大的功能在于元字符匹配规则。 单字符匹配 单字符匹配 字符功能.匹配任意1个字符 (除了\n)\. 匹配点本身[ ]匹配[ ]中列举的字符\d匹配数字即0 - 9\D匹配非数字\s匹配空白即空格、tab键\S匹配非空白\w匹配单词字符即a-z、A-Z、0-9、\W匹配非单词字符
示例
字符串 s “itheima1 python2 !!666 ##itcast3”
找出全部数字 re.findall(r‘\d’, s)
字符串的r标记表示当前字符串是原始字符串即内部的转义字符无效而是普通字符
找出特殊字符
re.findall(r‘\W’, s)
找出全部英文字母
re.findall(r’[a-zA-Z]’, s)
[]内可以写[a-zA-Z0-9] 这三种范围组合或指定单个字符如
[aceDFG135] 数量匹配 字符功能*匹配前一个规则的字符出现0至无数次匹配前一个规则的字符出现1至无数次匹配前一个规则的字符出现0次或无数次{m}匹配前一个规则的字符出现m次{m,}匹配前一个规则的字符出现最少m次{m,n}匹配前一个规则的字符出现m到n次 边界匹配 字符功能^匹配字符串开头$匹配字符串结尾\b匹配一个单词的边界\B匹配非单词边界 分组匹配 字符功能|匹配左右任意一个表达式()在括号中字符作为一个分组
案例
匹配账号只能由字母和数字组成长度限制6到10位
规则为 ^[0-9a-zA-Z]{6, 10}$
匹配QQ号要求纯数字长度5-11第一位不为0
规则为^[1-9][0-9]{4, 10}
[1-9]匹配第一位[0-9]匹配后面4到10位
匹配邮箱地址只允许qq、163、gmail这三种邮箱地址
规则为^[\w-](\.[\w-])*(qq|163|gmail)(\.[\w-])
[\w-] 表示出现a-z A-Z 0-9 _ 和 - 字符最少一个最多不限(\.[\w-])*表示出现组合 . 和 a-z A-Z 0-9 _ -的组合最少0次最多不限
用于匹配abc.ced.efg123.com中的ced.efg这部分
表示匹配符号(qq|163|gmail)表示只匹配这3个邮箱提供商(\.[\w-])表示a-z A-Z 0-9 _ -的组合最少1次最多不限
用于匹配abc.ced.efg123.com.cn中的.com.cn这种
最后使用表示最少一次即比如.com
多了可以是.com.cn.eu这样