我是Perl的新手,我需要在两个不同的字符串之间提取数字。
我有这个字符串变量:
my $var = "1234 23.3\"
如何在white-space
和dot
之间提取数字?在示例中,输出应为23。
上面的var字符串可能会有所不同,因此有时它可能是123 4.32
或123 334.4\
,其输出应分别为4或334.
答案 0 :(得分:0)
可以使用\s
反斜杠序列匹配空格,请参阅perlrecharclass
:
\s
匹配任何被视为空格的单个字符
同样,可以使用\d
匹配数字:
\d
匹配被认为是十进制数字的单个字符。
要匹配句点或点,请注意点是正则表达式元字符,它将匹配任何字符(换行符除外),请参阅perlre
和perlretut
,以便明确匹配点应该逃避它。
因此,给定$var = "1234 23.3"
,以下声明:
$var =~ /\s+(\d+)\./;
应该在空格之后和点之前提取数字到捕获组变量$1
。有关+
元字符的详细信息以及有关捕获组的信息,请参阅perlre
。