Java Web基础:第十五讲 正则表达式

来源:互联网 发布:宏程序 刀具寿命 编程 编辑:程序博客网 时间:2024/05/21 09:03

 

本文内容摘自:《Java Web开发教程——入门与提高篇(JSP+Servlet)》第55-58页。
正则表达式提供了一种高级的、但不直观的字符串匹配和处理的方法。它描述了一种字符串匹配的模式,可以用来判断一个字符串是否满足某种格式,或者一个字符串是否含有某个子串等。
字符集
    正则表达式中可以使用的用于匹配的字符集如表3.1所示。
3.1 字符集
字符
作用
.
匹配除/n以外的任何一个字符。
[ ]
匹配包含在方括号内的任何一个字符。
^
用在方括号中表示匹配除方括号中字符以外的任何字符。
示例:
.at:匹配以任意字符开头,后面为at的字符串。如“cat”、“bat”、“#at”等。
[a-z]:匹配任意一个小写字母(az之间的)。如“a”、“c”、“e”等。
[aeiou]:匹配任意一个元音字母。
[a-zA-Z]:匹配任意一个大写或小写字母。
[^a-z]:匹配任何不在az之间的字符。
重复
    用于确定重复次数的字符如表3.2所示。
3.2 重复次数
字符
作用
*
表示重复0次或以上。
+
表示重复1次或以上。
表示重复0次或1次。
示例:
[a-zA-Z]*:匹配任意大小写字母构成的字符串,也可以是空字符串。如:“abc”。
[0-9]+:匹配任何由数字构成的字符串,该字符串至少包含一个字符。如:“1234
[a-z0-9]?:匹配空字符串,或者一个小写字母或数字。
子表达式
    子表达式的格式和作用如表3.3所示。
3.3 子表达式
字符
作用
()
将多个字符作为一个子表达式。
示例:
(very )*large:匹配“large”、“very large”、“very very large”等。注意very后面的空格。
子表达式计数
    子表达式可以出现多次,子表达式的计数如表3.4所示。
3.4 子表达式计数
字符
作用
{n}
表示重复n次。
{m,n}
表示重复m~n次。
{m,}
表示重复m次以上。
示例:
(very ){1} :匹配“very ”。
(very ){1,3}:匹配“very ”、“very very ”、“very very very ”。
(very ){1,}:匹配由一个或一个以上“very ”构成的字符串。                        
指定字符串的开始和末尾
   字符串的开始和结束符如表3.5所示。
3.5 开始和结尾
字符
作用
^
指定以某个字符串开始。
$
指定以某个字符串结尾。
^$
表示精确匹配某个字符串。
示例:
^zhang:匹配以“zhang”开头的任意字符串。如“zhangsan”。
cn$:匹配以“cn”结束的任意字符串。如:“sina.com.cn”。
^[a-z]$:匹配只包含az之间任意一个字符的字符串。如:“a”。
注意:如果一个模式不包括^$,那么它与任何包含该模式的字符串匹配。
思考:^[a-z][a-z]$分别匹配什么样的字符串?
分支
    表示分支的字符如表3.6所示。
3.6 分支
字符
作用
|
表示匹配多个模式串中的任意一个。
 
示例:
com|edu|net:匹配comedunet
匹配特殊字符 
    在匹配特殊字符的时候需要用到转义字符,转义字符如表3.7所示。
3.7 特殊字符
字符
作用
/
用来转义特殊字符
示例:
//:匹配一个反斜杠。
/.:匹配一个圆点。
常见用法举例
^[a-zA-Z][a-zA-Z0-9_]*$:匹配以字母开头,由字母、数字和下划线组成的字符串。如:“abc_123
^[a-zA-Z0-9]{6,}$:匹配由字母和数字组成,长度不少于6位的字符串。如:“123456
^[ 0-9]{4}-[0-9]{2}-[0-9]{2}$:匹配格式为“xxxx-xx-xx”的字符串,要求x只能是数字。常用于匹配日期,如:“2007-05-01”。
^[a-zA-Z][a-zA-Z0-9_/-]*@([a-zA-Z0-9/-]+/.)+[a-z]{2,3}$:常用于匹配Email。要求@符号前面是以字母开头,由字母、数字、下划线或减号组成的字符串;@符号后面的域名可以包含多个字符串,每个字符串由字母、数字或减号组成;最后一级域名只能包含2个或3个字母(例如cncom等)。
^0[0-9]{2,3}-[0-9]{7,8}$:常用于匹配电话号码。要求区号由0开始,包含34位数字,区号和电话号码之间用减号分隔,电话号码由7位或者8位数字组成。
 
上一讲:第十四讲 客户端验证的常用方法
下一讲:第十六讲 客户端验证的例子
李绪成 CSDN Bloghttp://blog.csdn.net/javaeeteacher
邀请您为好友:http://student.csdn.net/invite.php?u=124362&c=7be8ba2b6f3b6cc5