Perl 匹配行中的负数无效

Perl 匹配行中的负数无效,perl,Perl,如何匹配一行中的负数 input line :strongest_signal_indication Invalid {-1} some text 但这对我不起作用 请提供任何帮助您的模式确实匹配 $ perl -E' say "Invalid {-1}" =~ / ( [+-]?\d+ )| (\s+ ( \{ [^-]+ \} |\S+)) /x ? "match" : "no match";' match 事实上,/[+-]\d+/x就足够了。您

如何匹配一行中的负数

input line :strongest_signal_indication Invalid {-1} some text 但这对我不起作用


请提供任何帮助

您的模式确实匹配

$ perl -E'
   say
      "Invalid {-1}" =~ / ( [+-]?\d+ )| (\s+ ( \{ [^-]+ \} |\S+)) /x
         ? "match" : "no match";'
match

事实上,
/[+-]\d+/x
就足够了。

您需要简单地拿起那个号码吗?电话里还有其他号码吗?要匹配字符串中的一个(可能是负数)整数,您只需要
my($num)=$str=~/([+-]?\d+/
,请解释一下more@zdim我需要拾取文件中所有出现的唯一(-1)个数字OK。那么我在前面的评论中所写的就是你所需要的。如果
$str
包含字符串,它将查找并捕获一个数字并将其存储在
$num
中。如果字符串不包含数字,则
$num
结束
undef
。对于一个完整的文件,您可以逐行读取它并使用上面的命令,以便
$str
在运行时有一行。问题出在哪一部分?你能发布你正在尝试的完整代码吗?@sam:我向你保证,你的评论比我自己的要陌生得多。我提出了建设性的批评,我很惊讶你对它如此敏感。我在这个领域的知识是,盲目地从互联网上复制代码并将其插入到自己的程序中,而不花精力去理解它的功能,这是一个坏主意。这是一个巨大的安全风险,你可能会遭受各种各样的副作用,而这些副作用是你没有打算或预料到的。我正在与你分享你所描述的知识。对于一个从未对自己的任何问题投过赞成票的人来说,这尤其奇怪。@Borodin我曾问过我的疑问,什么对我来说不起作用,但你说的有些不同
$ perl -E'
   say
      "Invalid {-1}" =~ / ( [+-]?\d+ )| (\s+ ( \{ [^-]+ \} |\S+)) /x
         ? "match" : "no match";'
match