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

    正则表达式

    正则表达式:是对字符操作的一种逻辑公式,,一般使用正则表达式对字符串进行匹配和过滤
    优点:灵活、功能性强、逻辑性强。
    缺点:上手难,一旦上手,会得心应手。
    
    元字符:正则表达式的灵魂
    

    1.字符组

    字符组很简单就是用[]括起来,在[]中出现的内容会被匹配。
    

    2.简单元字符(常用):匹配一个字符

     . :匹配除换行符以外的任意字符
    w : 匹配数字或字母或下划线
    s : 匹配任意的空白字符
    d : 匹配数字
    
     : 匹配一个换行符
    	 :匹配一个制表符
     :匹配一个单词的结尾
     ^ :匹配字符串的开始
     $ :匹配字符串的结尾
    W : 匹配非数字或字母或下划线
    D :匹配非数字
    S :匹配非空白符
    a|b: 匹配字符a或字符b
    () : 匹配括号内的表达式,也表示一个组
    [...] : 匹配字符中的字符
    [^...]: 匹配除了字符组中字符的所有字符
    

    3.量词 :匹配多个字符

    * :重复零次或更多次
    + : 重复一次或更多次
    ?:重复零次或一次
    {n}:重复n次
    {n,}:重复n次或更多次
    {n,m}:重复n次到m次
    

    4.惰性匹配和贪婪匹配

    在量词中*,+,{}都属于贪婪匹配,就是尽可能多的匹配到结果。
    
        str:美丽富饶的沙河欢迎你的到来
        reg:美丽.*
        结果:美丽富饶的沙河欢迎你的到来  
     
    在使用.*后面如果加了?则是表示尽可能的少匹配,表示惰性匹配
    
        str:美丽富饶的沙河欢迎你的到来
        reg:美丽.*?
        结果:美丽
    
        str: <div>老男孩</div>
        reg: <.*>
        结果:<div>老男孩</div>  
        
        str: <div>老男孩</div>
        reg: <.*?>
        结果:<div>
              </div> 
    
        str: <div>老男孩</div>
        reg: <(div|/div*)?>
        结果:<div>
              </div>
    
    .*?x的含义比较特殊,找到下个x为止
        str: poiuhgntyxnghjdxdngh
        reg:.*?x
        结果:poiuhgntyx
              nghjdx
    

    5.分组

    在正则中使用()进行分组。 
    

    6.转移

    在正则表达式中,有很多特殊意义的元字符,比如
    和s等,如果要在正则中匹配到正常的
    而不是换行符,就需要对""进行转移
    变成"\"。在python中,无论是正则表达式,还是待匹配的内容,都是以字符串的形式出现的,在字符串中也有特殊的含义,
    本身还需要转义,所以如果匹配一次"
    ",字符串中要写成"\n",那么在正则中就要写成"\\n",相比较比较麻烦。
    这是就需要用到转义r"
    "这个概念,此时的正则就是r"\n"了。
  • 相关阅读:
    互联网时代,80后新时代的管理者
    使用YUI Compressor压缩CSS/JS
    使用最优方法来加速运行你的网站
    随笔 微笑
    首款LGA775平台离子迷你主板登场
    CSS调试技巧五则,兼谈“提问的艺术”
    SharpDevelop 编辑器
    穿越防火墙 让远程桌面自由连接
    开源的搜索引擎工具包和Web搜索引擎系统
    Javascript工具 使用JS Minifier过滤JS文件
  • 原文地址:https://www.cnblogs.com/zhao-peng-/p/9798109.html
Copyright © 2011-2022 走看看