3. 用法举例说明
1) 表达式:\bhi\b
所需语法:\b——匹配一个单词的开始或结束,也就是指单词和空格间的位置;
含义说明:精确地查找“hi”这个单词
查找结果:能查找到类似“hi,how are you!”这样的单词;如图2所示
 
图2
2) 表达式:\bhi\b.*\bLucy\b
所需语法:\b——匹配一个单词的开始或结束,也就是指单词和空格间的位置;. ——匹配除换行符以外包括空格和Tab键的任意字符;*——重复前一个字符或一组表达式零次或更多次;
含义说明:先是一个单词hi(前后用“\b”来匹配为一个单词),然后是任意个任意字符但不能是换行(用“.”来匹配),最后是“Lucy”这个单词。
查找结果:能查找到类似“hi,i am Lucy”这样的字符串;如图3所示
 
图3
3) 表达式:0\d{2}-\d{8}
所需语法:\d——匹配一位数字;\d{n}——匹配n位数字;
含义说明:这是一个查找电话号码的正则表达式,“0”代表以0开头的字符串,\d后面的{2}({8})的意思是前面\d必须连续重复匹配2次或8次;
查找结果:能查找到类似“020-88889999”这样的字符串;如图4所示
 
图4
4) 表达式:\ba\w*\b
所需语法:b——匹配一个单词的开始或结束,也就是指单词和空格间的位置;\w——匹配字母或数字或下划线或汉字等;*——匹配的是数量,也就是匹配前边的内容可以连续重复使用任意次;
含义说明:匹配以字母a开头的单词——先是某个单词开始处(\b),然后是字母a,然后是任意数量的字母或数字(\w*),最后是单词结束处(\b)。
查找结果:能查找到类似“abc”这样的字符串;所图5所示
 
图5
5) 表达式:\d+
所需语法:\d——匹配一位数字;+——重复前一个字符或一组表达式一次或更多次;
含义说明:\d+匹配1个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可能是0次),而+则匹配重复1次或更多次。
查找结果:能查找到类似“989”这样的字符串;如图6所示
 
图6
6) 表达式:\b\w{6}\b
所需语法::\b——匹配一个单词的开始或结束,也就是指单词和空格间的位置;\w——匹配任意一个字母或数字或下划线或汉字等;{n}——重复n次,只对邻近的字符或一组表达式起作用;
含义说明:匹配刚好6个字符的单词
查找结果:能查找到类似“strong”这样的字符串;如图7所示
 
图7
7) 表达式:^\d{5,12}$
所需语法:^——匹配字符串的开始的一个位置;$——匹配字符串的结束的一个位置;\d——匹配一位数字;{n,m}——重复n到m次;
含义说明:匹配长度在5至12位的数字串。“{5,12}”的意思是重复的次数不能少于5次,不能多于12次,否则都不匹配。这个表达式常用在验证输入的内容,比如用于一个网站要求你填写的QQ号必须是5位到12位数字时。
查找结果:能查找到类似“87122234”这样的字符串;如图8所示
 
图8
8) 表达式:Windows\d+
所需语法:\d——匹配任意一位数字,等价于[0~9];+——重复前一个字符或一组表达式一次或更多次;
含义说明:匹配Windows后面跟1个或更多数字
查找结果:能查找到类似“Windows2003”这样的字符串;如图9所示
 
图9
9) 表达式:unibetter\.com
所需语法:\——转义符,将特殊字符转化为普通字符,取消后面跟着的字符的特殊意义;
含义说明:匹配unibetter.com
查找结果:能查找到 “unibetter.com”这样的字符串;如图10所示
 
图10
10) 表达式:[cdefg]
所需语法:[]——匹配括号里任何一个字符或字符串;
含义说明:查找符合任何一个字母“c”或“d”或“e”或“f”或“g”的字符串;
查找结果:能从类似“dffasdfac”这样的字符串里查找出单个的“d”、“f”、“c”字母;
拓展:[0-9]代表的含意与\d就是完全一致的,也就是匹配一位数字;同理[a-z0-9A-Z_]也完全等同于\w(如果只考虑英文的话)。如图11所示
 
图11
11) 表达式:\(?0\d{2}[) -]?\d{8}
所需语法:\——转义符,将特殊字符转化为普通字符,取消后面跟着的字符的特殊意义;?——重复前一个字符或一组表达式零次或一次;\d——匹配任意一位数字,等价于[0~9];{n}——重复n次,只对邻近的字符或一组表达式起作用;[]——匹配包含在其中的单个字符;
含义说明:这个表达式看似复杂,但其实是分为以下几部分的“\(?”、“0”、“\d{2}”、“[) -]?”、“\d{8}”。首先是一个转义字符\(,然后是表示出现0次或1次(?),然后是一个0,后面跟着2个数字(\d{2}),然后是)或-或空格中的一个,紧跟的是出现1次或不出现(?),最后是8个数字(\d{8})。
查找结果:可匹配像(010)88886666,或022-22334455,或02912345678等号码;如图12所示
 
图12
12) 表达式:0\d{2}-\d{8}|0\d{3}-\d{7}
所需语法:\d——匹配任意一位数字,等价于[0~9];{n}——重复n次,只对邻近的字符或一组表达式起作用;|——或的表达式,表示分支条件,匹配代码左侧的表达式或匹配代码右侧的表达式两者之一;注意:当左侧的表达式匹配条件相符的话,不再检测右侧的表达式;
含义说明:匹配两种以连字号分隔的电话号码:一种是三位区号,8位本地号(如010-22223333),一种是4位区号,7位本地号(0736-5587952)。
查找结果:查找到类似010-22223333或0736-5587952的电话号码;如图13所示
 
图13