正则表达式测试器:
http://www.forta.com/books/0672325667/
常见问题解决方案:
- 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})) - URL地址:
https?://[-\w.]+(:\d+)?(/([\w/_.]*)?)? - 电子邮件地址:
(\w+\.)*\w+@(\w+\.)+[A-Za-z]+ - HTML注释:
<!-{2,}.*?-{2,}>
基本元字符
.
匹配任意单个字符
|
逻辑或操作符
[ ]
匹配字符集合中的一个字符
[^]
对字符集合求非
-
在[ ]
中定义一个区间
\
对下一个字符转义
数量元字符
*
匹配前一个字符(子表达式)的零次或多次重复 *?
懒惰型版本
+
匹配前一个字符(子表达式)的一次或多次重复 +?
懒惰型版本
?
匹配前一个字符(子表达式)的零次或一次重复
{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)
分行匹配模式,必须在整个模式前面,此时换行符相当于字符串分隔符