一、今日学习内容:

今天主要学习的是正则表达式的相关知识:

正则表达式提供了一种高级的、但不直观的字符串匹配和处理的方法。它描述了一种
字符串匹配的模式,可以用来判断一个字符串是否满足某种格式,或者一个字符串是否含
有某个子串等。
1. 字符集
正则表达式中可以使用的用于匹配的字符集如表 2.2 所示。
表 2.2 字 符 集
字符 作 用
. 匹配除\n 以外的任何一个字符
[ ] 匹配包含在方括号内的任何一个字符
^ 用在方括号中表示匹配除方括号中字符以外的任何字符
示例:
.at:匹配以任意字符开头,后面为 at 的字符串,如“cat”、“bat”、“#at”等。
[a-z]:匹配任意一个小写字母(a~z 之间的),如“a”、“c”、“e”等。
[aeiou]:匹配任意一个元音字母。
[a-zA-Z]:匹配任意一个大写或小写字母。
[^a-z]:匹配任何不在 a~z 之间的字符。
2. 重复
正则表达式中用于确定重复次数的字符如表 2.3 所示。
表 2.3 重 复 次 数
字符 作 用
* 表示重复 0 次或以上
+ 表示重复 1 次或以上
? 表示重复 0 次或 1 次
示例:
[a-zA-Z]*:匹配由任意大小写字母构成的字符串,也可以是空字符串,如“abc”。
[0-9]+:匹配任何由数字构成的字符串,该字符串至少包含一个字符,如“1234”。
[a-z0-9]?:匹配空字符串,或者一个小写字母或数字。
3. 子表达式
正则表达式中子表达式的格式和作用如表 2.4 所示。
44 Java Web 程序设计基础教程
表 2.4 子 表 达 式
字符 作 用
() 将多个字符作为一个子表达式
示例:
(very )*large:匹配“large”、“very large”、“very very large”等。注意 very 后面的空格。
4. 子表达式计数
正则表达式中的子表达式可以出现多次,子表达式的计数如表 2.5 所示。
表 2.5 子表达式计数
字符 作 用
{n} 表示重复 n 次
{m,n} 表示重复 m~n 次
{m,} 表示重复 m 次以上
示例:
(very ){1} :匹配“very ”。
(very ){1,3}:匹配“very ”、“very very ”、“very very very ”。
(very ){1,}:匹配由一个或一个以上“very ”构成的字符串。
5. 指定字符串的开始和结尾
正则表达式中字符串的开始和结束符如表 2.6 所示。
表 2.6 开 始 和 结 尾
字符 作 用
^ 指定以某个字符串开始
$ 指定以某个字符串结尾
^和$ 表示精确匹配某个字符串
示例:
^zhang:匹配以“zhang”开头的任意字符串,如“zhangsan”。
cn$:匹配以“cn”结束的任意字符串,如“sina.com.cn”。
^[a-z]$:匹配只包含 a~z 之间任意一个字符的字符串,如“a”。
注意:如果一个模式不包括^和$,那么它与任何包含该模式的字符串匹配。
思考:^[a-z]和[a-z]$分别匹配什么样的字符串?
6. 分支
正则表达式中表示分支的字符如表 2.7 所示。
表 2.7 分 支
字符 作 用
| 表示匹配多个模式串中的任意一个
示例:
com|edu|net:匹配 com、edu 或 net。
7. 匹配特殊字符
在匹配特殊字符的时候需要用到转义字符,如表 2.8 所示。
表 2.8 特 殊 字 符
字符 作 用
\ 用来转义特殊字符
示例:
\\:匹配一个反斜杠。
\.:匹配一个圆点。
下面举例说明一些常见用法:
^[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}$:常用于匹配 E-mail。要求@符
号前面是以字母开头,由字母、数字、下划线或减号组成的字符串;@符号后面的域名可以
包含多个字符串,每个字符串由字母、数字或减号组成;最后一级域名只能包含 2 个或 3
个字母(例如 cn、com等)。
^0[0-9]{2,3}-[0-9]{7,8}$:常用于匹配电话号码。要求区号由 0 开始,包含 3 到 4 位数
字,区号和电话号码之间用减号分隔,电话号码由 7 位或者 8 位数字组成。
下面的例子展示了如何在 JavaScript 中使用正则表达式,其功能是对电话号码格式进行
验证:
function isPhone(str)
{
if(str.match("^0[0-9]{2,3}-[0-9]{7,8}$"))
return true;
else
return false;
}

二、遇到的问题:

没有什么问题。

三、明日学习计划:

继续学习javaweb。

posted on 2020-11-24 22:35  白日梦想家~  阅读(79)  评论(0编辑  收藏  举报