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

    正则表达式

    正则表达式用来处理文本信息功能强大,学习正则表达是其实就是学习其语法规则:测试的软件是RegexBuddy,文末有响应的测试文本

    一、正则表达式语法一:普通字符

        普通字符:数字、字母、下划线、汉字、没有特殊定义过的标点符号

        转义字符:

    代表换行符
    代表制表符
    \ 代表本身
    {,},[,],(,),$,^,*,+,|,.,? 代表该字符本身

         记忆方法:第四行 六个括号+键盘Shit 4($)、 6(^)、 8(*与+)  还有三个|?.

    二、正则表达式语法二:标准字符集

        标准字符集合:能够代表某个字符集合的表达式

        区分大小写:大写代表取反的意思

    d 代表0-9任意数字 d:digit 数字的意思
    w 代表a-z, A-Z, 0-9,_ 任意字符 w:word 字符的意思
    s 代表 等空格字符 s:space 空格的意思
    . 代表任意字符(除了换行符)  

    三、正则表达式语法三:自定义字符集

        自定义字符集合:[]括起来的字符串

        

    [abc@] 匹配a或b或c或@字符
    [^abc@] 匹配除a,b,c,@以外的任一字符
    [a-f] 匹配a~f中的任一意字符
    [^a-f1-4] 匹配a~f 1~4 以外的任一字符

           1、自定义字符中包含的特殊字符都失去其特殊意义,除了^(表示取反)和-(表示区间)

        2、自定义字符集中包含标准字符集(除了小数点外),则自定义字符集包含该标准字符集合

           [d.-+]将匹配:数字、小数点、+、-   : 这里的小数点不算标准字符集合,只代表小数点,-需要转义 + 正常表示

           [ws.-+]将匹配:数字、大小写字母、空格、小数点、+、-   

    四、正则表达式语法四:量词

        量词:修饰匹配次数的特殊符号

    {m} 表达式出现m次
    {m,} 表达式至少出现m次
    {m,n} 表达式出现m到n次
    + 相当于{1,}
    ? 相当于{0,1}
    * 相当于{0,}


        匹配次数中的贪婪模式(匹配字符越多越好,默认!)

        匹配次数中的非贪婪模式(匹配字符越少越好,修饰匹配次数的特殊符号后再加上一个 "?" 号)

        这里的可以参考https://www.cnblogs.com/hahazexia/p/6001492.html

    五、正则表达式语法五:零宽匹配

         字符边界:本组标记匹配的不是字符而是位置,符合某种条件的位置

     

    ^ 与字符串开始的地方匹配
    $ 与字符串结束的地方匹配
     匹配一个单词的边界

         :表示匹配一个位置:这个位置不全是w     意思就是这个位置全是w 排除掉

          比如:^i    只会匹配字符串第一个字符i (这里这个文本表示一个字符串)

            i$    只会匹配字符串最后一个i

        

    六、正则表达式语法六:选择符合分组

    | 选择结构 左右两边或关系
    ()捕获组 1.()内是一个整体被修饰等2.()内的值会被单独保存起来3.引用是通过左括号来计数的
    (?:expression) 当不需要保存()中的内容的时候,就用这个,减少内存消耗

      反向引用 nn  例如1 2  表示引用第1个左括号中的内容    第2个左括号中的内容

        

     

    七、正则表达式七:零宽断言

    (?=exp) 断言自身出现的位置的后面能匹配表达式exp
    (?<=exp) 断言自身出现的位置的前面能匹配表达式exp
    (?!exp) 断言自身出现的位置的后面不能匹配表达式exp
    (?<!exp) 断言自身出现的位置的前面不能匹配表达式exp

     

         gaoqi后面是非数字,1-4位小写字母后面是ing     当然不包括ing


     

    i love you 
    how do you dare do this to me gaoqi
    gaoqi22 gaoqi dodo toto doto todo toto 
    1232 4456 gaoqi22 gao1i@ gaoqiing doging gaming
    i
    View Code

     

    你是一只猪
  • 相关阅读:
    PHP的strtotime()函数2038年bug问题
    [转]MySQL常用字符串函数
    [转]MySQL日期与时间戳常用函数
    微信公众号开发的一点自我小结,怕自己过后忘了,总结于此。
    [转]去掉IOS下的input 和textarea的内阴影
    [转]Javascript removeChild()删除节点及删除子节点的方法(同样适用于jq)
    能够还原jQuery1.8的toggle的功能的插件
    xp sp3安装.Net 4.0提示严重错误,0x80070643,解决办法2017版
    thinkphp5访问sql2000数据库
    微信网页授权,错误40163,ios正确,安卓错误?
  • 原文地址:https://www.cnblogs.com/guyibade/p/14756754.html
Copyright © 2011-2022 走看看