
1 bindiry 2014-08-21 11:20:12 +08:00 |
2 Arrowing 201408-21 11:25:23 +08:00 js简单的: var s = '<a href="http://news.hsw.cn/system/more/25330000/0000/25330000_00000011.shtml">下一页</a>'; var r = /<a href="(.*)">下一页/; s.match(r)[1]; |
3 alexapollo 2014-08-21 11:47:07 +08:00 <a href="(http://news.hsw.cn/system/more/[^>]*?)">下一页</a> |
4 endoffight OP |
5 endoffight OP @Arrowing 确实很简单 |
6 Vonex 2014-08-21 12:22:54 +08:00 <a href="[^"]+">[^<]+</a> |
7 csensix 2014-08-21 12:56:07 +08:00 RewriteRule ^/(.*)$ %1/$1 大伙有空也帮忙解释一下这个正则,apache配置里面的,谢过。 |
8 imn1 2014-08-21 13:03:34 +08:00 善用字符排除 [^不可能字符],不仅可以匹配更精确,还能加速正则 |
9 xylophone21 2014-08-21 13:03:37 +08:00 @bindiry @alexapollo 的答案都破不了这种情况: <a href="http://news.hsw.cn/system/more/25330000/0000/25330000_00000010.shtml">\n 下 一 页 < / a > 即">下一页</a>" 这几个字符中都可能插入回车,甚至空格都不影响实际使用. 正则之前把回车空格神马的都去掉吧. 另外,你确定前面的a标签url都是news.hw.cn开头的?确定不会有别的属性? |
10 CosWind 2014-08-21 13:07:03 +08:00 @csensix http://stackoverflow.com/questions/6654834/difference-between-1-vs-1-in-htaccess 貌似要结合RewriteCond 看。Apache的官方文档应该是不错的参考资料。。 |
11 CosWind 2014-08-21 13:10:34 +08:00 |
12 CosWind 2014-08-21 13:12:28 +08:00 @endoffight 正则是贪心的,这样肯定匹配的比较多吧。 |
13 CosWind 2014-08-21 13:20:25 +08:00 /"([^"]*)">\s*下\s*一\s*页/这样可以么 |
14 diaoleona 2014-08-21 22:49:35 +08:00 为何不用xpath |
15 endoffight OP @diaoleona 你确定Xpath能解决吗? |
16 WKPlus 2014-08-28 23:47:42 +08:00 虽然你加了?,表示非贪心的匹配方式,但是误解了贪心的意思,第三行还是会匹配到。 13楼说的不错,把.*?改为[^\"]*就可以了。 其实你都用python了,干嘛不用BeautifulSoup?用正则解析html吃力不讨好啊 |
17 endoffight OP @WKPlus 当时追求快,懒得安装bs |