想学正则,请高人指点…… 搞php也有一年多了,以前没在意,现在发现这东西用处大……是专门看书(书名?),还是有啥在线教程? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就那几个函数,先把函数搞清楚了。正则表达很复杂,但PHP用到的匹配大多在网上有答案。 google 搜索一下就行了。并不复杂。 记得我当初学正则的时候,每天早上一到公司,打开firefox的正则表达式插件。然后一边对照着教程,试验各种正则的语法。体会它的用法,大概几天时间就比较熟练了。所以说学这东西最好的方法是边学边练,光看是不行的,练习可以帮你加深记忆。当你将语法记忆的比较熟练后,可以尝试去写一些采集别人网站的程序。 正则没你想的那么复杂,也没你想的那么简单。可以说基本的那些元字符还是比较容易理解和记忆的。后面的那些零宽断言,平衡组,后向引用等还是需要多多体会其用法才能明白。另外,正则本身虽然是一套死的规范,但在实际使用时并不是死的,与程序语言一样,包含很多逻辑,很灵活。一个正则新手写出的表达式可能语句罗嗦,也无法做到那么的严谨。而高手可能很简单的一个表达式就能达到目的,且非常严谨。/*取出测试1,测试2*/$str = "<table class='c1'><tr><td class='c2'>测试1</td><td>测试2</td></tr></table>";新手的话,可能会这样写preg_match("/<td class='c2'>(.*)<\/td><td>(.*)<\/td>/is",$str,$m);对正则使用比较熟练的人,可能会这样写preg_match_all("/<td[^>]*>([^>]*)<\/td>/is",$str,$m);虽然都能取出结果,但第二个明显比第一个严谨性高,写法也简单一些。 preg_match_all("/<td[^>]*>([^>]*)<\/td>/is",$str,$m);topreg_match_all("/<td[^>]*>(.*)<\/td>/is",$str,$m); //内容看情况使用贪婪,非贪婪。 上面手误,将([^<]*)写成了([^>]*),谢谢指正 to ls我意思是说如果在标签的内容中有 < 或 > 就不太好。。 标签的内容中应该不会出现<或>的,如果有它们会被转义成<或> 未登录实现购物车 请问现在流行的PHP扩展库是什么? PHP代码问题 无退出,居然也自动退出session了 求助:php页面生成excel文件 请问高手:表单(form)提交的底层操作 用cookie还是session 郁闷,用html划表格真的好烦哦, 哪里有DW快速入门的电子书和资料? 请教PHP正则关于字符串的操作问题 为什么PHP页面是这样的乱码? 函数里面如何由参数变量$what得到$what_1?
/*取出测试1,测试2*/
$str = "<table class='c1'><tr><td class='c2'>测试1</td><td>测试2</td></tr></table>";新手的话,可能会这样写
preg_match("/<td class='c2'>(.*)<\/td><td>(.*)<\/td>/is",$str,$m);对正则使用比较熟练的人,可能会这样写
preg_match_all("/<td[^>]*>([^>]*)<\/td>/is",$str,$m);
虽然都能取出结果,但第二个明显比第一个严谨性高,写法也简单一些。