Perl中的模式所需的单行正则表达式

AgA*_*AgA -1 html regex perl match

我需要使用perl读取包含类似结构的许多HTML文件.

结构由STRRRR ... E组成

  • 在表格开始之前S = html标题
  • T = html文件中的唯一表启动结构(我可以识别它)
  • R =一组html元素(那些是tr,我也可以识别它)
  • E =全部剩余 - 使结束R变为单一

我想使用单行"m"perlop提取数组中的所有R.

我正在寻找这样的东西:

@all_Rs = $ htmlfile = ~m {ST(R)*E} gs;

但它从来没有成功过.

到目前为止,我一直在努力做到这一点,比如使用删除不需要的文本,循环等.我想从这个页面中提取所有行:http://www.trainenquiry.com/StaticContent/Railway_Amnities/Enquiry%20 - %20North/STATIONS.aspx 并且有很多这样的页面.

dax*_*xim 5

正则表达式是错误的工具.使用HTML解析器.

use HTML::TreeBuilder::XPath;
my $tree= HTML::TreeBuilder::XPath->new_from_content(<<'END_OF_HTML');
<html>
    <table>
        <tr>1
        <tr>2
        <tr>3
        <tr>4
        <tr>5
    </table>
</html>
END_OF_HTML

print $_->as_text for $tree->findnodes('//tr');
Run Code Online (Sandbox Code Playgroud)

HTML :: TreeBuilder :: XPath继承自HTML :: TreeBuilder.