美文网首页
《正则表达式必知必会》读书笔记

《正则表达式必知必会》读书笔记

作者: 江湖人称向前兄 | 来源:发表于2016-01-22 18:03 被阅读196次

    正则表达式 regex

    语法容易掌握, 如何解决实际问题难。

    正则表达式测试器:http://deerchao.net/  (软件开发者的正则表达式30分钟入门教程

    同一个问题有多种解决方案。区分大小写。

    .字符可以匹配任何单个字符、字母、数字或其本身。可连续出现,可间隔出现。

    \ 元字符,表示这个字符有特殊含义,而不是字符本身的的含义。如果搜\本身,则\\。

    第三章 匹配一组字符

    [] 字符集合,匹配结果是该集合里的任意一个成员相匹配的文本。字符集合在不需要区分大小写,或只需匹配某个特定部分的搜索中常见。

    A-Z,a-z,A-z(不常用)

    -连字符只能用在[]之间,除此之外,为一普通字符,不需转义。

    练习:查找RGB值。

    取非匹配:^  给定字符集合里的所有字符或字符区间,不仅限于紧跟在^字符后面的那一个字符或字符区间。

    第四章 使用元字符

    两种元字符:1,匹配文本;2.regex语法所要求的。

    [\b]

    \f  backspace   \n  换行符  \r  回车符

    windows文本行的结束标签:\r\n。

    匹配数字:\d  [0-9]                  \D  [^0-9]  (记忆:大写取反)

    \w  [a-zA-Z0-9_]                \W    [^a-zA-Z0-9_]

    空白字符:\s      [\f\n\r\t\v]      \S

    前缀            \x 十六进制                     前缀            \0  八进制

    第五章 重复匹配

    匹配一个或多个字符:在其后面加+字符作为后缀即可。(必须放在集合的外面).至少要有一次。

    在字符集合里使用 的时候,.和+这样的元字符将被解释为普通字符,不需转义,但转 了效果一样。

    //至少爱我一次

    匹配0个或多个字符:在其后面加*字符作为后缀即可。(必须放在集合的外面),可有可无。不太建议使用。

    //若爱,请深爱

    匹配0个或一个字符:?

     //要么爱,要么不爱

    注意:如果同时用[]和?的话,要把?放在[]后面。

    重复次数:{}

    设定区间:{m,n}   ?等价于{0,1}

    至少重复多少次:给出最小的即可{3,}                     {n}正好N次。

    *、+为贪婪型元字符。多多益善而非适可而止。

    懒惰型元字符,在贪婪型元字符加一个?后缀即可。

    第六章 位置匹配

    单词结尾或开头   \b。不匹配一个单词边界则\B。

    \b匹配且只匹配一个位置,不匹配任何字符。

    字符串边界

    开头^             结尾$.

    ^有多种用途,只有当出现在一个字符集里并紧跟在[后面时,才发挥求非作用。

    第七章 使用子表达式

    子表达式必须用()括起来。

    \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}   改为   (\d{1,3}\.){3}\d{1,3}

    分析各个子表达式的时候,按照先内后外 的原则。

    第八章 回溯引用

    回溯引用指的是模式的后半部分引用在前半部分中定义的字表达式。

    //不同的正则表达式实现方式不一样。

    //只能用来引用模式里的子表达式。通常从1开始。

    \l和\u只能把下一个字符或表达式转换为小写或大写,\L和\U则是后面的所有字符转换为小写或大写,直到遇上\E。

    第九章 前后查找

    js不支持向后查找;使用向前查找的时候,正则表达式分析器将向前查找并处理某字符,但不会将其包括在最终的搜索结果中。

    ?=  向前查找                  ?<=向后查找

    向前查找模式的长度是可变的,可包含.和+之类的元字符,向后查找模式只能是固定长度。

    ^不能用来对前后查找进行取非处理。前后查找是用!来取非。

    第十章 嵌入条件

    相关文章

      网友评论

          本文标题:《正则表达式必知必会》读书笔记

          本文链接:https://www.haomeiwen.com/subject/coglkttx.html