• 正则表达式总结


           对正则表达式的印象总结为一句话就是:看似一堆乱码,功能非常强大。    

    1.       .(点号) 匹配任何单个的字符、字母、数字甚至是 . 字符本身。

     

    2.          [ ] 匹配方括号中多个字符中的某一个,如[ns]匹配字符ns[A-Z]匹配大写字符AZ中的一个,[0-9]匹配数字09中的一个,如此类似还有[a-z][A-F]等。

     

    3.        取非匹配,只有在[ ]内的第一个位置时才表示“取非”,如[^0-9]。如果^是整个正则表达式的第一个字符则表示匹配开头。

     

    4.         (空格匹配空格

                                 空白元字符

    

    回退(并删除)一个字符(BackSpace 键)

    f

    换页符

    换行符

    回车

    制表符(Tab)

    v

    垂直制表符

     

    5.        d   等同于[0-9]

        D   等同于[^0-9]

     

    6.        w   等同于[a-zA-Z0-9]

        W  等同于[^a-zA-Z0-9]

     

    7.        s   任何一个空白字符,等同于[f v]

       S   任何一个非空白字符,等同于[^f v]

     

    8.        x   匹配十六进制数

           匹配八进制数

     

    9.        +    匹配次数大于等于1

     

    10.    *    匹配次数大于等于0

     

    11.    ?  匹配一次或0

     

    12.    精确设定匹配次数:

      {m}        匹配m

      {m,n}     匹配m到n次

      {m,}         至少匹配m次

     

    13.    防止过度匹配

    贪婪性元字符

    懒惰型元字符

    *

    *?

    +

    +?

    {m,}

    {m,}?

     

    14.        用来匹配一个单词的开头或结尾。注意,只匹配位置,不匹配字符,例如,cat只匹配单词cat,匹配到的长度是3而不是5

       B     匹配非单词边界。“erB”能匹配“verb”中的“er”,但不能匹配“never”中的“er”

     

    15.    ^     定义字符串的开头,只有在[]内的第一个位置是表示“求非”

     

    16.    (?m) 分行匹配模式。必须出现在整个模式的最前面。

    17.    ()     被括起来的内容为一个子表达式。

     

    18.    回溯引用:num匹配模式中的第num个子表达式(num >= 1)用来代表整个表达式。

     

    19.    向前查找:?=

    例如表达式(?=:)表示向前找到 : ,但匹配结果不包括 : 。举例来说,字符串为”http:”(不包括引号),表达式.+(?=:)匹配”http”,而模式.+(:)匹配”http:”

    注意,任何一个字表达式都可以加上一个?=前缀变为一个向前查找表达式。

     

    20.    向后查找:?<=

      用法同向前查找?=

     

    21.    对前后查找取非

    ?=

    正向前查找

    ?!

    负向前查找

    ?<=

    正向后查找

    ?<!

    负向后查找

     

    附常用正则表达式

    用户名

    /^[a-z0-9_-]{3,16}$/

    密码

    /^[a-z0-9_-]{6,18}$/

    十六进制值

    /^#?([a-f0-9]{6}|[a-f0-9]{3})$/

    电子邮箱

    /^([a-z0-9_.-]+)@([da-z.-]+).([a-z.]{2,6})$/

    URL

    /^(https?://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/

    IP 地址

    /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/

    HTML 标签

    /^<([a-z]+)([^<]+)*(?:>(.*)</1>|s+/>)$/

    Unicode编码中的汉字范围

    /^[u2E80-u9FFF]+$/

  • 相关阅读:
    关于指针的定义格式
    C# 调用Qt编写的控件
    Qt中的泛型容器
    Qt之自定义属性Q_PROPERTY
    QT——键盘事件(捕获按键事件)
    Qt 嵌入浏览器 QWebEngineView实现浏览器基本功能
    QT TextEdit 自适应窗口大小,填满窗口 ——基于 函数
    为什么用QWebEngineView开发的浏览器速度很慢
    Qt5.9使用QWebEngineView加载网页速度非常慢,问题解决
    QJson QxORM QtWebApp TreeFrog
  • 原文地址:https://www.cnblogs.com/kane1990/p/regex_notes.html
Copyright © 2020-2023  润新知