记得在做数据抓去的时候正则表达式写的很溜,几年不用现在都不知道该怎么下手。
这里写个简单的例子来帮助下记忆,免得以后依然无从下手。
例子说明:提取<li>标签之内的数据
$content = "<ul ><li >test1</li ><li >test2</li ><li >test3</li ></ul >";
preg_match_all ("/<li>([^<//li>]*)<//li>/", iconv("GBK", "UTF-8", $content), $matches);
var_dump($matches);
//下面是$matches的内容
array(2) { [0]=> array(3) { [0]=> string(14) "
- test1
- " [1]=> string(14) "
- test2
- " [2]=> string(14) "
- test3
-
" } [1]=> array(3) { [0]=> string(5) "test1" [1]=> string(5) "test2" [2]=> string(5) "test3" } }
很明显里面的 $matches[1] 里面的内容就是我想要的内容。
/<li>([^<//li>]*)<//li>/
正则表达式的说明:
首位的 / 是正则表达式的开始
第一: <li>是要匹配的标签
第二: ([^<//li>]*) 是说 <li>标签后面要跟一些不是</li>的字符 "^"表示的是取反,如果这行不写的话它会匹配最后一个</li>即test3后面的</li>
第三: <//li>是<li>标签的结束