如何在两个不同的字符串之间提取数字

时间:2017-02-12 22:54:17

标签: regex perl

我是Perl的新手,我需要在两个不同的字符串之间提取数字。

我有这个字符串变量:

my $var = "1234 23.3\"

如何在white-spacedot之间提取数字?在示例中,输出应为23。

上面的var字符串可能会有所不同,因此有时它可能是123 4.32123 334.4\,其输出应分别为4或334.

1 个答案:

答案 0 :(得分:0)

可以使用\s反斜杠序列匹配空格,请参阅perlrecharclass

  

\s匹配任何被视为空格的单个字符

同样,可以使用\d匹配数字:

  

\d匹配被认为是十进制数字的单个字符。

要匹配句点或点,请注意点是正则表达式元字符,它将匹配任何字符(换行符除外),请参阅perlreperlretut,以便明确匹配点应该逃避它。

因此,给定$var = "1234 23.3",以下声明:

$var =~ /\s+(\d+)\./;

应该在空格之后和点之前提取数字到捕获组变量$1。有关+元字符的详细信息以及有关捕获组的信息,请参阅perlre