正则表达式总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式总结相关的知识,希望对你有一定的参考价值。

正则表达式总结

正则表达式的语法里面分为字符、预定义字符、数量词、边界匹配、逻辑分组、特殊构造,如图:

技术分享

先介绍Python中支持正则表达式的re模块中的方法,使用什么函数都大同小异,重要的是正则表达式。

函数描述
compile(pattern)返回一个匹配完模式的对象
search(pattern, string)在字符串中搜索模式
match(pattern, string)从字符串开始匹配模式
split(pattern, string)根据模式来分隔字符串
findall(pattern, string)在字符串中找出所有匹配模式的
sub(pattern, replace, string)在字符串中找出所有匹配模式的并且用replace来替换
escape(string)特殊字符转义

比如说邮箱,我们分析它的结构,其是一个前面为字符和数字组成,中间一个@,跟着字符和数字,后面是.com组成。所以简单的来写就是(\w+)*@(\w+)*\.com,考虑到如果字符和数字中间可能会允许-或者.的存在,所以可以写为\w+([-+.]\w+)*@\w+([-.]\w+)*\.com

所以我们可以这么写代码:

import re
ma = re.search(‘\w+([-+.]\w+)*@\w+([-.]\w+)*\.com‘, ‘aq1#$125vqr&[email protected])
print(ma.group())  # [email protected]

下面给出一些特定情况下使用的正则表达式例子。

  1. 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):

    ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
  2. 汉字:

    [\u4e00-\u9fa5]{0,}$
  3. IP地址

    \d+\.\d+\.\d+\.\d+
  4. 日期格式

    ^\d{4}-\d{1,2}-\d{1,2}
  5. 密码(以字母开头,长度在 6~18 之间,只能包含字母、数字和下划线)

    ^[a-zA-Z]\w{5,17}$

当然还有很多,大家在匹配的时候具体问题具体分析,参考前面提到的那种图片。

参考文章【个人总结】正则表达式语法及常用正则

以上是关于正则表达式总结的主要内容,如果未能解决你的问题,请参考以下文章

markdown 正则表达式模式片段

正则表达式匹配特定的 URL 片段而不是所有其他 URL 可能性

循环通过 python 正则表达式匹配

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

js正则表达式总结

复习总结正则表达式-上