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

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

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

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

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

第十章 嵌入条件

你可能感兴趣的:(《正则表达式必知必会》读书笔记)