正则表达式

重温正则表达式,想起大三编译原理李老师的课了..还好当时底子还在

“.”句点符号匹配所有单个字符,包括空格、Tab字符甚至换行符; 

[abc]方括号之内你只能匹配单个字符,只能匹配a或b或c 其中的唯一一个;

“|”操作符的基本意义就是“或”运算;

()圆括号还可以用来分组 ;

匹配次数:

.表单个任意字符; 

*表0次或多次 ;

+表1次或多次;

?表0次或1次;

{n} 表重复n次;

{m,n} 表重复m到n此均可;

“\” 为转义字符;

 “^”符号称为“否”符号。如果用在方括号内,“^”表示不想要匹配的字符;

注意:^在中括号内时表示否定,反之表示匹配以..为首。

 

 \d表[0-9]

\D表[^0-9] 

\w表[A-Z0-9] 

\W表[^A-Z0-9]  

\s表[\t\n\r\f]  

\S表[^\t\n\r\f]     \f是什么意思呢?!!

“\s”符号是空白符号,匹配所有的空白字符,包括Tab字符;

 ^表匹配行开始符;再次注意中括号内的区别;

$表匹配行结束符; 

 下边几个实例:

\d+$ 匹配全数字

\d{4}-(0[1-9]|1\d)-(0[1-9]|[1-2]\d) 匹配生日,格式2011-01-20

对于同一表达式会有多种不同的正则式来判断,区别可能在于判断的范围准确性。

如2011-01-02使用\d{4}-\d{2}-\d{2}同样也是可以判断出来的,只是此正则式范围太大了,比如2011-22-33也可判断通过,显然这是与实际相不符的。

因此针对不同情况来处理特殊正则式是更明智的,理解正则式,理解自动机。

 

忽然想起要感谢李老师 ~~

 

参考:http://edu.yesky.com/edupxpt/18/2143018.shtml 

posted @ 2011-01-20 21:52  .小武.  阅读(246)  评论(0编辑  收藏  举报