正则表达式必知必会-附

正则表达式测试器:
http://www.forta.com/books/0672325667/

常见问题解决方案:

  1. IP地址:
    (((25[0-5])|(2[0-4]\d)|(1\d{2})|(\d{1,2}))\.){3}((25[0-5])|(2[0-4]\d)|(1\d{2})|(\d{1,2}))
  2. URL地址:
    https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)?
  3. 电子邮件地址:
    (\w+\.)*\w+@(\w+\.)+[A-Za-z]+
  4. HTML注释:

基本元字符
. 匹配任意单个字符
| 逻辑或操作符
[ ] 匹配字符集合中的一个字符
[^]对字符集合求非
-[ ]中定义一个区间
\ 对下一个字符转义

数量元字符
* 匹配前一个字符(子表达式)的零次或多次重复 *? 懒惰型版本
+ 匹配前一个字符(子表达式)的一次或多次重复 +?懒惰型版本
? 匹配前一个字符(子表达式)的零次或一次重复
{n} 匹配前一个字符(子表达式)的n次重复
{m,n} {n,} {n,}?

位置元字符
^or\A 匹配字符串开头
$or\Z 匹配字符串结束
\< 匹配单词开头
\> 匹配单词结束
\b 匹配单词边界(开头和结束)
\B \b的反义

特殊字符元字符
[\b] 退格字符
\c 匹配一个控制字符
\d 匹配任意数字字符
\f 换页符
\n 换行符
\s 匹配一个空白字符
\S \s的反义
\t 制表符
\v 垂直制表符
\w 匹配任意字母数字字符或下划线字符
\W \w的反义
\x 匹配一个16进制数
\0 匹配一个8进制数

回溯引用和前后查找
( ) 定义一个子表达式
\1 匹配第一个子表达式 \2 \3依次类推
?= 向前查找
?!= 负向前查找
?<= 向后查找
? 负向后查找
?( ) 条件 if ( ) then
?( ) | 条件 if ( ) then else

大小写转换
\E 结束 \L\U
\l 把下一个字符转换为小写
\L 把后面的字符转换为小写,直到遇见 \E 为止
\u 把下一个字符转换为大写
\U 把后面的字符转换为大写,直到遇见 \E 为止

匹配模式
(?m) 分行匹配模式,必须在整个模式前面,此时换行符相当于字符串分隔符

你可能感兴趣的:(读书笔记)