【问题标题】:Perl regex extracting for charcters like @ or $Perl 正则表达式提取 @ 或 $ 等字符
【发布时间】:2015-01-19 10:18:42
【问题描述】:

我正在尝试编写一个 perl 脚本,该脚本从文件中提取少量子字符串。文件包含像Lives@124.23 这样的词。我需要做的是提取字符@之后的数字,在上述情况下为124.23

我尝试使用/\@([0-9]+\.?[0-9]+)/ 模式,但模式与提供的单词不匹配。 谁能告诉我如何提取这个数字?

【问题讨论】:

  • 正则表达式没问题,在匹配之前检查你的字符串。 perl -e 'print "Lives\@124.23" =~ /\@([0-9]+\.?[0-9]+)/'
  • 但是我可以看到你的正则表达式正在工作。 rubular.com/r/D1nJHZm96l
  • 并且需要打印组索引1。
  • @mpapec :您已经更改了输入,因为您在@ 中添加了一个字符“\”。没有“/”,提供的正则表达式将不起作用。请再次检查。
  • @Samiron 是的,我可以看到它正在工作,但我不确定如何......因为这在我的系统上失败了。顺便说一句,我正在使用 perl,v5.10.0。

标签: regex perl


【解决方案1】:
(?<=@)\d+(?:\.\d+)?

试试这个。这应该可以工作。查看演示。

http://regex101.com/r/uV3aL0/31

【讨论】:

    【解决方案2】:

    你能试试这个吗:

    my $string = "Lives\@124.23.2";
    my (@values) = $string=~m/\@(\d+[\.\d]*)/g;
    print @values;
    

    谢谢。

    【讨论】:

      猜你喜欢
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多