美文网首页
正则表达式

正则表达式

作者: 不一样的丶我们 | 来源:发表于2018-01-11 22:29 被阅读12次

    正则表达式

    • 正则表达式是一门单独的技术,在实际操作过程中由于它优雅的字符匹配特性,各种编程语言都陆续支持正则表达式的操作方式,Python中通过内建模块re进行正则表达式的处理,大致按照如下三个步骤进行数据的操作
      • 确定源数据:获取整体数据
      • 按照目标数据定义正则表达式匹配规则
      • 从整体数据中匹配符合要求的数据
    • 正则表达式的处理,最核心的是先掌握正则表达式的语法和匹配规则,根据实际操作的不同需要,正则表达式定义了不同的数据匹配方式
    表达式 描述
    ^ 匹配开头
    $ 匹配结束
    . 匹配任意..字符
    x? 匹配字符x出现0次或者1次
    x+ 匹配字符x出现1次或者多次
    x* 匹配字符x出现0次或者多次
    (xy)+ 分组的方式,匹配字符串xy出现1次或者多次
    [xy]+ 匹配字符x或者y出现了1次或者多次
    [0-9]+ 匹配一个数字出现了1次或者多次
    [a-z]+ 匹配一个小写字母出现了1次或者多次
    [A-Z]+ 匹配一个大写字母出现了1次或者多次
    [a-zA-Z]+ 匹配一个字母[大小写均可]出现了1次或者多次
    x{m,} 匹配字符x出现了m次以上
    x{m,n} 匹配字符x出现了m次以上n次以下
    $ 匹配字符出现了n次以下
    ... ...
    \d 匹配一个数字,和[0-9]相同
    \D 匹配一个非数字,和[^0-9]相同
    \w 匹配一个字母数字或者下划线,和[a-zA-Z0-9_]相同
    \s 匹配一个空白字符
    \b 匹配一个字符的边缘位置 hello worhellold : \bhello\b
    ... ...
    * 贪婪匹配符,和其他表达式一起使用
    ? 懒惰匹配符,和其他表达式一起使用

    python中操作正则表达式

    • python通过内建的re模块,对于正则表达式的操作提供了友好的支持
      • PS:正则表达式是一个单独的技术,python支持它的操作
    • python在实际操作过程中,re模块提供了两种操作方式
      • 核心操作方式
        • 正则匹配对象pattern,通过re模块的compile()函数对于正则表达式字符串进行编译得到
        • 通过pattern匹配对象对目标字符串进行匹配检索操作
      • 快捷操作方式
        • 直接通过re模块的各种正则函数进行字符串的匹配检索操作
    # 核心操作方式
    0.正则表达式字符串
    1.通过表达式字符串->得到匹配对象
    2.通过匹配对象->目标字符串进行检索
    
    # 快捷操作方式
    0.正则表达式字符串
    1.通过re模块->目标字符串进行检索
    

    正则表达式核心操作方法

    • match():用于根据表达式进行字符匹配的操作函数~只匹配一次[从指定的起始位置进行匹配]
    • search():用于根据表达式进行字符匹配的操作函数~只匹配一次[从完整的目标字符串中进行检索匹配]
    • findall():用于根据表达式进行字符匹配~匹配多次,返回匹配到的列表
    • finditer():用于根据表达式进行字符撇皮~匹配多次,返回匹配到的迭代器
    • split():根据指定的表达式对目标字符串进行切割,返回切割后的列表
    • sub():用于字符替换
    # 匹配对象的函数
    match(string[, pos[, endpos]])
    search(string[, pos[, endpos]])
    findall(string[, pos[, endpos]])
    finditer(string[, pos[, endpos]])
    
    # re模块的函数
    match(pattern, string, flags=0)
    search(pattern, string, flags=0)
    findall(pattern, string, flags=0)
    finditer(pattern, string, flags=0)
    
    # 公共函数[匹配对象|re模块操作方式一样]
    split():拆分字符串的函数
    sub():根据正则替换字符串的函数
    

    常用的正则表达式

    • 匹配中文字符的正则表达式
      • [\u4e00-\u9fa5]
      • 匹配中文还真是个头疼的事,有了这个表达式就好办了
    • 匹配首尾空白字符的正则表达式
      • ^\s|\s$
      • 可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式
    • 匹配Email地址的正则表达式
      • \w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*
      • 表单验证时很实用
    • 匹配网址URL的正则表达式
      • [a-zA-z]+://[^\s]*
    • 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)
      • ^[a-zA-Z][a-zA-Z0-9_]{4,15}$
      • 表单验证时很实用
    • 匹配腾讯QQ号
      • [1-9][0-9]{4,}
      • 腾讯QQ号从10000开始
    • 匹配中国邮政编码
      • [1-9]\d{5}(?!\d)
      • 中国邮政编码为6位数字
    • 匹配身份证
      • \d{15}|\d{18}
      • 中国的身份证为15位或18位
    • 匹配ip地址
      • \d+.\d+.\d+.\d+
      • 提取ip地址时有用

    相关文章

      网友评论

          本文标题:正则表达式

          本文链接:https://www.haomeiwen.com/subject/hkztoxtx.html