1
cloverstd 2013-04-23 11:30:15 +08:00
你是想匹配得到 “数据” 和 “/123/abc.jpg” 吗?
|
2
woshifyz 2013-04-23 11:36:39 +08:00
你这个有两个问题,
第一:在选择条件外加捕获括号,这样会捕获外面的分组,改成(?: 第二:正则匹配分支条件是短路的,A|B,如果A可以匹配,不会匹配B, 所以你的匹配可以改为:<td>(?:<img src="(.+?)" border="0" />|?:(.+?))</td> 大概就是这个样子,没经过测试,你调试下应该就好了 |
3
woshifyz 2013-04-23 11:39:30 +08:00
...好吧,测过发现错了,
如果 <td>(?:<img src="(.+?)" border="0" />|(.+?))</td> ,这样的话,可以都匹配,但是当匹配 “数据” 时会有空分组,上面一个回答多了个?: |
5
mrbrooks OP @woshifyz 非常感谢, 你的这个方法可以,呵呵,但是跟你说的一样有空的分组。这个问题,或者不用这样的方法,有没有其他更方便的?
|
6
oldman 2013-04-23 13:19:44 +08:00
这种情况下我一般是先将<td></td>内的内容match下来,然后再取"/123/abc.jpg"(“数据”自然就会被略过了),自我感觉这样清晰一些,不知道这样是否可以满足LZ的需求
|
7
Kabie 2013-04-25 01:08:34 +08:00
http://stackoverflow.com/a/1732454/260985
请用lxml…… 或者你不会xpath可以用pyquery提供的api https://pypi.python.org/pypi/pyquery |