首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将正则表达式与perl匹配

将正则表达式与perl匹配
EN

Stack Overflow用户
提问于 2014-07-23 06:23:01
回答 2查看 77关注 0票数 0

我正在尝试在perl中执行正则表达式匹配,但我不确定如何获得它。基本上,我想从下面的字符串中提取数字(其中可能有换行符,也可能没有换行符)

代码语言:javascript
复制
                        <strong>
                    word
                        </strong>
                    </td><td align="right">
                            <strong>
                        65&nbsp;&nbsp;
                            </strong>
                        </td><td align="right">
                            <strong>
                        5,000&nbsp;&nbsp;
                            </strong>
                        </td><td align="right">
                            <strong>
                        -&nbsp;&nbsp;
                            </strong>

<tr><td colspan="2">word</td><td align="right">65&nbsp;&nbsp;</td><td align="right">5,000&nbsp;&nbsp;</td><td align="right">-&nbsp;&nbsp;</td></tr>

因此,对于上述两个字符串,我希望匹配: 65;5000;和-(表示0)。

EN

回答 2

Stack Overflow用户

发布于 2014-07-23 06:33:18

您要查找的正则表达式如下所示:

代码语言:javascript
复制
/((\d+(,\d+)?)|-)/s

...,而修饰符"s“负责多行之间的匹配。

但是,我同意HamZa的观点,即您实际上应该使用HTML Parser。特别是"-“符号也很可能出现在HTML中的其他地方。您可以按如下方式扩展正则表达式:

代码语言:javascript
复制
/((\d+(,\d+)?)|-)&nbsp;+/s

..。但是,它已经开始变得丑陋了。

票数 0
EN

Stack Overflow用户

发布于 2014-07-23 14:11:39

将上面提到的字符串存储在变量中,假设您已经将其存储在变量$str中,那么:

代码语言:javascript
复制
    use Data::Dumper;
    my @numbers = ($str =~ /\d+?,*\d+|-/sg);
    print Dumper @numbers;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24898872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档