+ -
当前位置:首页 → 问答吧 → HTML标签的正则表达式 求助

HTML标签的正则表达式 求助

时间:2010-03-31

来源:互联网

html语言的模版是这样的....<a>....<b>???<b>...<c>???</c>...</a>....
然后<c>...</c>时有时无,现在要把??里的内容扣出来,考虑用什么方法?

作者: jiantizi   发布时间: 2010-03-31

Perl code
my $a= '<a>....<b>???<b>...<c>???</c>...</a>....';
while ($a =~ />(.*?)</g ) {
   print $1,"\n";
}

不过最好还是用cpan上的模块。如:WWW::Mechanize

作者: Aylazhang   发布时间: 2010-03-31

对,有现成的模块还是用模块来分析模板比较好!

作者: fibbery   发布时间: 2010-03-31

引用 1 楼 aylazhang 的回复:
Perl code
my $a= '<a>....<b>???<b>...<c>???</c>...</a>....';
while ($a =~ />(.*?)</g ) {
print $1,"\n";
}

不过最好还是用cpan上的模块。如:WWW::Mechanize


你这个不是把“....”也给抠出来啦?我只是要“??”的内容。

作者: jiantizi   发布时间: 2010-04-01

. 跟 ? 有什么区别。你没说清楚。

作者: Aylazhang   发布时间: 2010-04-01

引用 4 楼 aylazhang 的回复:
. 跟 ? 有什么区别。你没说清楚。

.和?都带标网页上的内容,只是??表示的部分是我要的。

作者: jiantizi   发布时间: 2010-04-01

Perl code
my $a= '<a>....<b>???<b>...<c>???</c>...</a>....';
while ($a =~ />(\?+?)</g ) {
   print $1,"\n";
}

作者: Aylazhang   发布时间: 2010-04-01

引用 6 楼 aylazhang 的回复:
Perl code
my $a= '<a>....<b>???<b>...<c>???</c>...</a>....';
while ($a =~ />(\?+?)</g ) {
print $1,"\n";
}

看来还是没有讲清楚,给个例子:
  <a>
  sssss
  <b>2009</b>
  <c>Nov</c>
  ddddd
  </a>

作者: jiantizi   发布时间: 2010-04-01

我要的是<b></b>和<c></c>之间的内容,这里是2009和Nov,另外<c></c>有时候有有时候没有。

作者: jiantizi   发布时间: 2010-04-01

怎么没人知道啊,顶一下。。。。。。

作者: jiantizi   发布时间: 2010-05-07

Perl code
my $a= '<a>....<B>xxxxxxxxxxx</B>...<c>yyyyyyyyyy</c>...</a>....';
while ($a =~ /<[bc]>(.*?)<\/[bc]>/ig) {
   print $1,"\n";
}

作者: fandelei1982   发布时间: 2010-05-08

有现成的模块

作者: proorck6   发布时间: 2010-11-05