ccbabc

 

正则表达式基础语法

此文章在于帮助读者在5分钟内,回忆正则表达式,前提是读者需要具有一定的正则表达式基础。对于没有任何正则表达基础的读者,本文可能用处不大,这类读者可以参看文章《正则表达式30分钟入门教程》。

基本字符

\d

数字,digital的简写

\b

单词开头或结尾,如’\baw*z\b’,a开头,b结尾

\s

空白,如空格,制表符,回车,换行

\w

字母或数字,还有中文

^

开头

$

结尾

.

任意单个字符,除了换行

[abc]

匹配任意在等于a或b或c的字符

[m-n]

范围,m-n之间,也适用于字母

数量限定

{n}

出现n次

{n,m}

出现n到m次

{n,}

出现大于或等于n次

?

出现0次或1次

*

出现0此或多次

+

出现1次或多次

反义字符

\D

匹配任意不是数字的字符

\B

匹配不以某字符开头或结尾

\S

匹配任意不是空白字符

\W

匹配任意不是字母或数组或中文

[^x]

匹配任意不是x的字符

[^xyz]

匹配任意不是x,或y或z的字符

P.S.: 与基本字符对应,刚好相反

其他字符

\

转义字符,上面出现的特殊字符为保留字符,如果需要匹配这些字符,如$,^等,需要用\转义

()

分组,用于关联后面相邻的数量限定,如(ab){2},表示’ab’必须连续出现两次,如果写成ab{2},那么只是标识’b’需要连续出现2次

|

逻辑或,匹配两边中的一个即符合

常见正则表达式

IP v4

^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$

去除开头空白符号

^\s*

出去结尾空白符号

\s*$

去除两端空白符号

(^\s*)|(\s*$)

日期YYYY-MM-DD

\d{4}-((0[1-9])|(1[0-2]))-((0[1-9])|([1-2]\d)|(3[0-1]))

P.S.正则表达式不是万能的,比如上面的日期的判断,还需要判断闰年,大小月等,这些逻辑在正则表达式中不能完成,还需要其他方式判断日期的合法化。

参考资料

posted on 2012-06-29 10:04 韩进 阅读(123) 评论(0)  编辑  收藏 所属分类: 正则表达式


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜