我正在尝试在perl中执行正则表达式匹配,但我不确定如何获得它。基本上,我想从下面的字符串中提取数字(其中可能有换行符,也可能没有换行符)
<strong>
word
</strong>
</td><td align="right">
<strong>
65
</strong>
</td><td align="right">
<strong>
5,000
</strong>
</td><td align="right">
<strong>
-
</strong><tr><td colspan="2">word</td><td align="right">65 </td><td align="right">5,000 </td><td align="right">- </td></tr>
因此,对于上述两个字符串,我希望匹配: 65;5000;和-(表示0)。
发布于 2014-07-23 06:33:18
您要查找的正则表达式如下所示:
/((\d+(,\d+)?)|-)/s...,而修饰符"s“负责多行之间的匹配。
但是,我同意HamZa的观点,即您实际上应该使用HTML Parser。特别是"-“符号也很可能出现在HTML中的其他地方。您可以按如下方式扩展正则表达式:
/((\d+(,\d+)?)|-) +/s..。但是,它已经开始变得丑陋了。
发布于 2014-07-23 14:11:39
将上面提到的字符串存储在变量中,假设您已经将其存储在变量$str中,那么:
use Data::Dumper;
my @numbers = ($str =~ /\d+?,*\d+|-/sg);
print Dumper @numbers;https://stackoverflow.com/questions/24898872
复制相似问题