正则表达式基础语法

发表于:2007-05-26来源:作者:点击数: 标签:
故事开始的篇章^ ^ 匹配不同类型的字符 : 字符类 匹配的字符 示例 \d 从0~9的任一数字 \d\d可以匹配72,但不匹配aa或7a \D 非数字字符 \D\D\D匹配abc,但不匹配123 \w 任意单词字符,如A-Z、a-z、0-9, 和下划线 \w\w\w\w匹配Ab_2,但不匹配@#$%或Ab_@ \W

故事开始的篇章^ ^

匹配不同类型的字符 :

字符类匹配的字符示例
\d从0~9的任一数字\d\d可以匹配72,但不匹配aa或7a
\D非数字字符\D\D\D匹配abc,但不匹配123
\w

任意单词字符,如A-Z、a-z、0-9,

和下划线

\w\w\w\w匹配Ab_2,但不匹配@#$%或Ab_@
\W非单词字符\W可以匹配@,但不匹配a
\s任一空白字符,包括制表符,换行符,回车符,换页符和垂直制表符匹配所有传统的空字符,包括用HTML,XML和其他标准定义的字符
\S任一非空白字符每一个非空字符:A%&g3等
.任一字符换行符除外\n
[...]括号中的任一字符[abc]匹配单个字符a、b或c,但不能匹配其他字符[a-z]匹配a~z的任一字符
[^..]不在括号中的任意字符[^abc]匹配a/b/c除外的任一字符

指定匹配位置:

定位

描述
^

其后的模式必须在字符串的开始处,如果是一个多行字符串,应位于任一行的开始。对于多行文本(包含回车符的字符串),需要设定Multiline标志

$前面的模式必须在字符串的末尾处,如果是一个多行字符串,应该在任一行的末尾
\A前面的模式必须在字符串的开始处,多行标记被忽略
\z前面的模式必须在字符串的末尾处,多行标记被忽略
\Z前面的模式必须在字符串的末尾处,或是位于换行符前
\b匹配一个单词的边界,实质上是单词字符和非单词字符间的点。单词字符是[a-zA-Z0-9_]中的任一字符。位于单词的开始。
\B匹配一个非单词边界的位置,不在一个单词的开始

指定重复字符:

重复字符含义举例
(花括号)n匹配前面的字符n次x(花括号)2    匹配xx,但不匹配x或xxx
(花括号)n,匹配前面的字符n次或更多x(花括号)2,   匹配2个或更多的x,如xx,xxxx
(花括号)n,m匹配卡门的字符至少n次,至多m次x(花括号)2,4 匹配xx,xxx和xxxx,不匹配x或xxxxx
?匹配前面的字符0次或1次,可以省略x?匹配x或空
+匹配前面的字符1次或更多次x+匹配x或xxx...
*匹配前面的字符0次或多次x*可以是空,或x,xxx....

           备注由于花括号不不能显示,只能用字描述,(花括号)n表示用一对花括号包含一个n

特殊字符的转义:

 转意思序列描述
\\
\..
\**
\++
\??
\||
\((
\))
\{{
\}}
\^^
$$
\n换行
\r回车
\ttab制表位
\v垂直制表位
\f换页
\nnn匹配一个3位八进制表示的字符 3表示大写C
\xnn匹配2位十六进制的字符  \x43表示大写C
\unnnn4位十六进制表示的Unicode字符
\cV匹配一个控制字符,如\cV表示Ctrl+V


^[\w\W]+$       这个是正则表达式的贪婪模式

^[\w\W]+?$     这个是正则表达是的懒惰模式

^(\d[-]*)[\dxX]$  用来匹配ISBN  1-861008-23-6    1-86100-823-6

^(\d[-]*?)[\dxX]$ 同上不过这个是懒惰模式

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)