今天遇到个问题,要取出来一串文字,需要用到正则,先看源码:
<tr>
<td><a href="/links/detail-1005589.html" title="风水知识">风水知识</a></td>
<td>0</td>
<td style="display:none">0</td>
<td>0</td>
<td><img src="/images/bds0.gif"></td>
<td><img src="/images/bds0.gif"></td>
<td><img src="/images/pr0.gif"></td>
<td class="f_gray" align="center">
<span>2018-02-24</span>
</td>
<td><a href="/home/list?typeid=0&catid=9">星相命理</a></td>
<td><a href="#" class="l" title="站内信">[jiayi58]</a></td>
<td class="qq"><a href="http://wpa.qq.com/msgrd?v=3&uin=784880600&site=go9go.cn&menu=yes" class="l" target="_blank"><img src="http://wpa.qq.com/pa?p=1:784880600:4" title="QQ"></a></td>
</tr>
<tr>
<td><a href="/links/detail-1005794.html" title="神话故事大全">神话故事大全</a></td>
<td>0</td>
<td style="display:none">0</td>
<td>0</td>
<td><img src="/images/bds0.gif"></td>
<td><img src="/images/bds0.gif"></td>
<td><img src="/images/pr0.gif"></td>
<td class="f_gray" align="center">
<span>2018-02-24</span>
</td>
<td><a href="/home/list?typeid=0&catid=24">动漫卡通</a></td>
<td><a href="#" class="l" title="站内信">[jiayi58]</a></td>
<td class="qq"><a href="http://wpa.qq.com/msgrd?v=3&uin=784880600&site=go9go.cn&menu=yes" class="l" target="_blank"><img src="http://wpa.qq.com/pa?p=1:784880600:4" title="QQ"></a></td>
</tr>
<tr>
<td><a href="/links/detail-1006392.html" title="值得去吗">值得去吗</a></td>
<td>1</td>
<td style="display:none">0</td>
<td>0</td>
<td><img src="/images/bds0.gif"></td>
<td><img src="/images/bds0.gif"></td>
<td><img src="/images/pr0.gif"></td>
<td class="f_gray" align="center">
<span>2018-02-24</span>
</td>
<td><a href="/home/list?typeid=0&catid=8">影视宽带</a></td>
<td><a href="#" class="l" title="站内信">[yuanjing]</a></td>
<td class="qq"><a href="http://wpa.qq.com/msgrd?v=3&uin=1494346951&site=go9go.cn&menu=yes" class="l" target="_blank"><img src="http://wpa.qq.com/pa?p=1:1494346951:4" title="QQ"></a></td>
</tr>
<tr>
<td><a href="/links/detail-19172.html" title="免费友情链接网">免费友情链接网</a></td>
<td>1</td>
<td style="display:none">0</td>
<td>0</td>
<td><img src="/images/bds0.gif"></td>
<td><img src="/images/bds1.gif"></td>
<td><img src="/images/pr0.gif"></td>
<td class="f_gray" align="center">
<span>2018-02-24</span>
</td>
<td><a href="/home/list?typeid=0&catid=17">门户网站</a></td>
<td><a href="#" class="l" title="站内信">[jcyweb]</a></td>
<td class="qq"><a href="http://wpa.qq.com/msgrd?v=3&uin=85618659&site=go9go.cn&menu=yes" class="l" target="_blank"><img src="http://wpa.qq.com/pa?p=1:85618659:4" title="QQ"></a></td>
</tr>
自己折腾了很久,虽然也折腾出来了,但是很麻烦,后面一个网友提供了一个简单的多的正则表达式:
html" title=.*?>(.*?)</a></td>[\s\S]*?<td>(.*?)</td>[\s\S]*?<span>(.*?)</span>[\s\S]*?uin=(.*?)&
注意标红的问号,我之前用的时候也用到了这个正则表达式,但是没有问号,就出问题了,直接匹配到后面去了,只能匹配到一个结果。
这个问号的含义我还不是很清楚,但是可以整体知道
[\s\S]*?
的意思:
可以匹配文档中任何一个位置。
\s 空白符
\S 非空白符
[\s\S]任意字符
[\s\S]* 0个到任意多个字符
[\s\S]*? 0个字符,匹配任何字符前的位置。
正则表达式中 \s代表一个空白字符(可能是空格、制表符、其他空白)。
补充:添加了问号其实就是非贪婪匹配,具体可以看文章:http://www.caogenbj.com/dxw.html
标签: 正则表达式