zoukankan      html  css  js  c++  java
  • 正则表达式

    re模块操作正则表达式(正则表达式本身是另外一种语言规范)

    正则表达式:通过一个规则来从一段字符串中找到符合规则的内容//判断某段字符串是否符合规则

    用处 :1. 注册页/网页上要求输入一个信息,判断输入的信息是否格式正确

    2.爬取数据,从网页上把代码以字符串的形式下载,回到内存,提取这个大字符串中想要的内容

    规则: 匹配  待匹配的字符串

    正则规则:

    1. 字符组:约束字符中某一个字符位置上的值是什么 , 只要是出现在字符组中的内容都算匹配到了.

    2."[3-9]"从小到大的顺序是根据ASCII码的顺序来的

    3.匹配数字[0-9]匹配字母[A-Za-z] 匹配数字和字母[0-9A-Za-z]   [0-9a-fA-F]匹配十六进制

    元字符:

    . 除了 (换行)不能匹配其他都可以匹配.

    d  匹配所有的数字

    s  匹配空白符

    w  匹配数字,字母,下划线.

      匹配换行符

      匹配制表符(Tab键)

      匹配一个单词的两端

    ^  匹配字符串的开始 (用法:放在要匹配字符的开始)

    $  匹配字符串的结尾 (用法:放在要匹配字符的结尾)

    W  匹配非字母 ,数字 ,下划线 的下划线

    S  匹配非空白符的字符串

    D  匹配非数字的字符串

    [....] 匹配字符组中的所有字符

    [^...]  匹配非字符组中的所有字符

    a|b  匹配字符a 或字符b    字符长的放在前面

    ()  匹配括号内的表达式,也表示一个组.

    *  重复零次或更多次

    + 重复一次或更多次

    ?  重复零次或一次

    {n}  重复n次

    {n, }  重复n或更多次

    {n,m} 重复n到m次

    d+(.d+)?  匹配小数

    d.+ 贪婪匹配    d.+?  非贪婪匹配

    ?在量词后面不表示量词,表示惰性,尽量少匹配.

    d.*?x  意思是:从数字开始匹配,直到遇到x停下来.(前面取任意长度,直到一个x出现停下来)

    贪婪匹配:正则表达式本身就是贪婪匹配的

    惰性匹配:尽量少匹配,需要在量词的后面加上一个?,最常见的用法:.*?标识,表示匹配任意长度的字符遇到标识就立刻停止.

    看正则表达式怎么区分?

    找元字符,元字符后面如果出现量词,那么这个量词就是约束这个元字符出现的次数.如果元字符没有量词出现,表示匹配一次.如果量词后面有?表示惰性匹配.

    r"\n"  r" "

    print("\n")

    print("\\n")

    print(r" ")  #取消字符串中所有转义符的转义作用

    print(r"\n")

    在正则表达式中,涉及到特殊转义的内容,都放在 r""中.

    在工具网页上匹配成功之后,在python中匹配不成功,匹配的字符串中又带有 "" 那么直接将测试好的内容都放在 r""中

    正则表达式本身具有处理字符串的能力.

    如果要处理的字符串存在python的内存里,通过re模块----->操作正则表达式

  • 相关阅读:
    Spring基础知识
    Hibernate基础知识
    Struts2基础知识
    在eclipse里头用checkstyle检查项目出现 File contains tab characters (this is the first instance)原因
    java后台获取cookie里面值得方法
    ckplayer 中的style.swf 中的 style.xml 中的修改方法
    java hql case when 的用法
    Windows下Mongodb安装及配置
    Mongodb中经常出现的错误(汇总)child process failed, exited with error number
    Mac 安装mongodb
  • 原文地址:https://www.cnblogs.com/fengkun125/p/9306666.html
Copyright © 2011-2022 走看看