天天看点

学习【精通正则表达式】书籍笔记

Jeff(er|re)y

Geoff(er|re)y

(Jeff|Geoff)(er|re)y

(Je|Geo)ff(er|re)y

gr[ae]y gr(e|a)y

行的起始与结束

    ^ $

字符组

    [...]

排除型字符组

    [^...]

任意单个字符

    .

多选结构

    |

忽略大小写

    命令行参数 -i

单词分界符

    元字符序列 \< \>

    < >本身不是元字符 只有当他们与斜线结合起来的时候整个序列才有意义

量词

    可选字符

        ?--代表可选项

    其他量词:重复出现

        + --出现一次或多次

        * --出现0次或任意多次

    规定重复次数的范围:区间量词

         ...{min,max}

括号及反向引用

    \([a-z]+) +\1\>

转义符

    \. 转义点号

 grep '^(http://|Apache|Licensed)' NOTICE //匹配以http:// Apache Licensed开头的行

 egrep '\<.+\>' NOTICE  //匹配任意字符组成的的行

 egrep '\<Apache\>' NOTICE //匹配Apache单词出现的行

 egrep -i '\<([a-z]+) +\1\>' NOTICE //匹配重复出现单词的行

 egrep '\([a-zA-Z]+\)' NOTICE //匹配括号里面是单词的行

 egrep '"[^"]*"' NOTICE //匹配“”好包含起来的字符串的行

 egrep -i '\<http://[-a-z0-9._:]+/[-a-z0-9_:@&?=+,.!/~*%$]*\.html?\>' //匹配URL

 12小时制时间

     (1[0-2]|[1-9]):[0-5][0-9].(am|pm)

 24小时时间

     ([01][0-9]|2[0-3]):[0-5][0-9].(am|pm)

 /^[-+]?[0-9]+(\.[0-9]+)?$/ //匹配数字

var rex = /[(1-2)(4-7)]/

字符组的元字符不同于正则表达式的“普通”元字符,在字符组内部,括号不再具有特殊含义,因此也不需要转义

s/(?=s\b)(?<=bJeff)/'/g 的结果是什么

继续阅读