正则表达式学习

2009年5月1日星期五

正则表达式学习

做网络爬虫时感觉字符串自身的那几个函数功能不够强大,因此我开始了正则表达式的学习之旅。闲话少说,下面是学习笔记:1、'.':匹配除了newline之外的所有字符。2、'^':匹配字符串的开头。3、'$':匹配字符串的结尾。4、'*':跟编译原理的闭包用法相同,匹配n次重复。5、'+':跟4类似,只是不能匹配0次重复。6、'?':跟4类似,只是它仅匹配0次或者1次的重复。例如ab?匹配a,ab7、*?,+?,??:前面的4,5,6都是贪婪匹配,也就是说它会尽可能多的匹配符合的字符。加了‘?’之后就约束为匹配尽可能少的符合的字符串。例如要对'H1title/H1'进行匹配,如果用.*,则它匹配的是整个字符串,如果是.*?的话则它只是匹配H1。8、{m}:匹配m指定的重复次数的字符串。例如'a{3}'匹配'aaa’9、{m,n}:匹配从m到n的重复次数的字符串,至少重复m次,至多重复n次,尽量往n次匹配。例如字符串是'abbbbb',正则表达式是'ab{2,4}'则匹配的是'abbbb'。10、{m,n}?:匹配从m到n的重复次数的字符串,至少重复m次,至多重复n次,尽量往m次匹配。例如字符串是'abbbbb',正则表达式是'ab{2,4}?'则匹配的是'abb'。11、'\':转义符。12、'[]':用来表示一个字符集合。所有在'[]'里面的正则字符都不再有意义,一律按一般字符看待。13、'|':对几个正则表达式进行或操作,这几个正则表达式将会从左至右匹配,一旦左边的匹配成功,就不会测试右边的正则表达式。14、

0 评论:

发表评论