- 论坛徽章:
- 0
|
my $html = "<table><tr><td>aa</td><td>bb</td></tr></table>标记1<table><tr><td>cc</td><td>dd</td></tr></table>标记2<table><tr><td>ee</td><td>ff</td></tr></table>";
我有这样一段网页代码,我想得到“标记1”后的td对,即:<td>cc</td><td>dd</td>,并装入数组@td,相当于
@td = ("<td>cc</td>","<td>dd</td>");
我以前都是分两次走,显然很啰嗦:- #!/usr/bin/perl
- use strict;
- use warnings;
- my $html = "<table><tr><td>aa</td><td>bb</td></tr></table>标记1<table><tr><td>cc</td><td>dd</td></tr></table>标记2<table><tr><td>ee</td><td>ff</td></tr></table>";
- my ($need) = ($html =~ /标记1(.*?)标记2/i);
- my (@td) = ($need =~ /(<td>.*?<\/td>)/ig);
- print "@td";
复制代码 有没有办法一步做到?- #!/usr/bin/perl
- use strict;
- use warnings;
- my $html = "<table><tr><td>aa</td><td>bb</td></tr></table>标记1<table><tr><td>cc</td><td>dd</td></tr></table>标记2<table><tr><td>ee</td><td>ff</td></tr></table>";
- my @td = ($html =~ /.*?标记1.*?(<td>.*?<\/td>)+/i);
- print "@td";
复制代码 尝试这样写,但只得到"<td>dd</td>"。
请精通正则的高手指教。 |
|