我想知道模式匹配在Perl中是如何工作的.
我的代码是:
my $var = "VP KDC T. 20, pgcet. 5, Ch. 415, Refs %50 Annos";
if($var =~ m/(.*)\,(.*)/sgi)
{
print "$1\n$2";
}
Run Code Online (Sandbox Code Playgroud)
我了解到第一次出现的逗号应该匹配.但这里最后一次出现的情况是匹配的.我得到的输出是:
VP KDC T. 20, pgcet. 5, Ch. 415
Refs %50 Annos
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这种匹配是如何工作的吗?
我有一个xml数据如下所示.我想对这些数据进行一些操作.每当'entry'标记中缺少'colname'属性时,我的代码应插入该属性,并使用'tgroup'标记中'cols'属性的值.
<tbl ID="I78">
<table colsep="0" frame="none" rowsep="0">
<tgroup cols="4">
<tbody valign="top">
<row>
<entry>i.</entry>
<entry>181.10</entry>
<entry>An inmate shall comply with the dispositions imposed by a hearing officer in a Tier I, Tier II and Tier III hearings.</entry>
<entry>I, II, III</entry>
</row>
</tbody>
</tgroup>
</table>
</tbl>
<tbl ID="I93">
<table colsep="0" frame="none" rowsep="0">
<tgroup cols="4">
<tbody>
<row>
<entry align="center"><ital>Pledge number</ital></entry>
<entry align="center"><ital>Date</ital></entry>
<entry align="center"><ital>R</ital></entry>
<entry><ital>A or S</ital></entry>
</row>
<row>
<entry><ital>Disposition column</ital></entry>
<entry>(<ital>Renewed</ital>)</entry>
<entry>(<ital>Renewed</ital>)</entry>
</row>
<row>
<entry>(<ital>Auction Sale</ital>)</entry>
</row>
</tbody>
</tgroup>
<eos></eos>
</table>
<eop></eop> …Run Code Online (Sandbox Code Playgroud) 我有这样的要求:
我想过为这个实现使用框架.但是,正如有人建议避免使用框架,我无法找到如何做到这一点的方法.是否可以在不使用单个页面内的框架和逻辑的情况下实现此目的?