边界匹配器:
边界匹配器 ^ 行的开头 $ 行的结尾 \b 单词边界 \B 非单词边界
精确地查找hi这个单词的话,我们应该使用\bhi\b,要不然的话history也会查找出来的,即\b是单词边界,\bhi\b.*\bLucy\b的意思:先是一个单词hi,然后是任意个任意字符(但不能是换行),最后是Lucy这个单词。
元字符^和$都匹配一个位置,这和\b有点类似。^匹配你要用来查找的字符串的开头,$匹配结尾。这两个代码在验证输入的内容时非常有用,比如一个网站如果要求你填写的QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$。如123456是6位,在5到12为之间,就匹配成功,1234567890123是13为,如果说不用^和$作为边界的话,只截取其中一部分也成功匹配,这显然是不对的!因为使用了^和$,所以输入的整个字符串都要用来和\d{5,12}来匹配,也就是说整个输入必须是5到12个数字,这里的{5,12}和前面介绍过的{2}是类似的,只不过{2}匹配只能不多不少重复2次,{5,12}则是重复的次数不能少于5次,不能多于12次
预定义字符类:
<table summary="Regular expression constructs,and what they match" border="0" cellpadding="1" cellspacing="0"><tbody><tr><td headers="construct predef" valign="top"><tt>.</tt></td><td headers="matches">任何字符(与<a target=_blank href="#lt">行结束符</a>可能匹配也可能不匹配)</td></tr></tbody></table>\d 数字:[0-9] \D 非数字: [^0-9] \s 空白字符:[ \t\n\x0B\f\r] :匹配<span class="desc">任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格</span> \S 非空白字符:[^\s] \w 单词字符:[a-zA-Z_0-9] :这里的单词是指:<span class="desc">字母或数字或下划线或汉字</span> \W 非单词字符:[^\w]
\d是个新的元字符,匹配一位数字.例如0\d\d-\d\d\d\d\d\d\d\d,一般写成0\d{2}-\d{8}更好看一些,-不是元字符,只匹配它本身