zoukankan      html  css  js  c++  java
  • 正则表达式之我见—元字符

    正则表达式语言由两种基本字符类型组成:原义(正常)文本字符和元字符。元字符使正则表达式具有处理能力。

    所谓元字符就是指那些在正则表达式中具有特殊意义的专用字符,可以用来规定其前导字符(即位于元字符前面的字符)在目标对象中的出现模式。

    元字符是一个或一组代替一个或多个字符的字符。听起来有点拗口,但举一个例子也许你就明白了:

    元字符*用来匹配0个或多个的前一字符;

    而元字符 . 用来匹配一个任意的一个字符。好比数学中的通式。

    表1.常用的元字符
    代码说明
    . 匹配除换行符以外的任意字符
    w 匹配字母或数字或下划线或汉字
    s 匹配任意的空白符
    d 匹配数字
     匹配单词的开始或结束
    ^ 匹配字符串的开始
    $ 匹配字符串的结束

    上面的表1是常用的元字符代码及说明,下面我们根据这些说明及对应的代码来做一些练习。

    1.1 .  匹配除换行符以外的任意字符

    匹配的结果有2个空白一个是空格一个是换行。这里需要特别说明的是换行符 而不是换行。

    1.2 w 匹配字母或数字或下划线或汉字

    我特意打了一个空格和#号还顺便换了行,结果还真的只匹配字母或数字或下划线或汉字...……

    1.3 s 匹配任意的空白符

    蓝色区域是空格及结果,右边结果栏的两个空白是换行。如果光标回到b的后面则没有这两个空格。同时,字母a和b也没有识别。

    1.4 d 匹配数字

     

    我打了字母和感叹号以及空格,它只是别了1。

    1.5  匹配单词的开始或结束

    这里有几种情况需要分别说一下:

    1.当我没有在后面指定规则的时候,随便我写一个什么样的源文本,在结果中都会有两个空格,表示 一前一后。

    2.当我改成a的时候,表示匹配以a开头的字符。此时变成

    3.当我改成a的时候,表示匹配以a结尾的字符。此时变成

    1.6 ^ 匹配字符串的开始

     

    1.7 $ 匹配字符串的结束

    混合应用,算是作业,自己分析下吧!

    QQ:[1-9]d{4,}

    IP:((2[0-4]d|25[0-5]|[01]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)

  • 相关阅读:
    观察者模式
    字符串操作函数
    位域结构体的字节对齐
    备忘任务
    Linux编程下EAGAIN和EINTR宏的含义及处理
    Linux 中write()函数的出错情况及处理
    Nginx配置配置文件nginx.conf的设置
    Linux编程获取本地IP
    redis与memcached比较
    TCP通讯socket自定义协议的实现
  • 原文地址:https://www.cnblogs.com/crafts/p/4200707.html
Copyright © 2011-2022 走看看