|
楼主 |
发表于 2012-6-19 16:46
|
显示全部楼层
本帖最后由 ctp_119 于 2012-7-7 07:32 编辑
不知你是否已经注意到\s和\S刚好反义,仅一个大小写的区别,这是一种规则,敬请注意,同时表示反义的另一种方式是正则表达式前面加"^"。后面还会有具体详实的表述,在此只是一种提示,希望自学时要多留意观察和比较。
\t 匹配一个制表符,等价于"\x09"和"\cI"
\v 匹配一个垂直制表符,等价于"\x0b"和"\cK"
"^ 匹配字符串开始位置,如果设置了Regexp对象的Multiline属性,也匹配""\n""或""\r""之后的位置。若在方括号""[""
中使用,表示不接受该字符集。"
注意与"["后面的"^"区别哟,它们的意义绝然不同。一个是匹配字符串开始位置,一个是取反。
$ 匹配字符串结束位置,如果设置了Regexp对象的Multiline属性,也匹配"\n"或"\r"之前的位置。
怎么理解"^"和"$"呢?例如:"^a"能匹配字符串"abcd"中的"a",而"^b"则不能匹配字符串"abcd"中的"b";同理可得:"d$"能匹配字符串"abcd"中的"d",而"c$"则不能匹配字符串"abcd"中的"c"。
[img]file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\84562532\QQ\WinTemp\RichOle\T[[7F78GL~_L76_{W7IQL[9.jpg[/img]
自学的过程中,难免会有一些自己暂时无法理解的东西,这时候通常需要我们跳跃性阅读,暂时把问题放一放,继续阅读下文,或再找相关资料辅助我们理解,或干脆通过一个实例去验证它。
* 匹配前面子表达式0次或多次。例如:"to*"能匹配"t",也能匹配"to",甚至能匹配"toooooo"。等价于{0,}
? 匹配前面子表达式0次或1次。例如:"do(es)?"可以匹配"do"或"does"中的"do"。等价于{0,1}
"+ 匹配前面子表达式1次或多次。例如:""to+""可以匹配""to""中的""o"",也可以匹配""too""中的""oo"",但是不能匹配""t""。
等价于{1,}。"
" 敬请注意以上三个特殊符号的区别,要深刻理解,要怎样才能做到深刻理解呢?学习计算机语言,一定要动手,仅仅动脑是不够的,切记:在输入代码时记忆,在调试代码中理解。
*,+和?限定符都是贪婪的,这个“贪婪”二字用的精妙。一开始不理解,一般是人才知道贪婪,什么符号也贪婪,再思索,原来运用了通感的修辞手法。给它拟人了。。呵呵,这是汉字的魅力……
三个符号的等价理解:{0,}理解为数学区间的表示,(0,+∞);{0,1}理解为(0,1);{1,}理解为(1,+∞)。这样一来,既记住了又理解了。"
{n} n是一个非负整数,匹配精确的n次。如:"e{2}"只能匹配beer中的"ee",而不能匹配"be"中的"e"。
"{n,} n是一个非负整数,至少匹配n次。例如:""e{2,}""不能匹配""ber""中的""e"",但能匹配""beer""中的""ee"",当然它也能匹
配""beeeeeer""中的所有""e""。""e{1,}等价于""e+"";而""e{0,}""等价于""e*""。"
|
|