Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何在两个不同字符串之间提取数字_Regex_Perl - Fatal编程技术网

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

Regex 如何在两个不同字符串之间提取数字,regex,perl,Regex,Perl,我是Perl新手,我需要在两个不同字符串之间提取一个数字 我有一个字符串变量: my $var = "1234 23.3\" 如何提取空白和点之间的数字?在本例中,输出应为23 上述var字符串可能不同,因此有时可能是123 4.32或123 334.4\,其中输出应分别为4或334。可以使用\s反斜杠序列匹配空白,请参阅: \s匹配任何被视为空白的单个字符 同样,可以使用\d匹配数字: \d匹配被认为是十进制数字的单个字符 要匹配句点或圆点,请注意圆点是一个正则表达式元字符,它将匹配任何字符

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

我有一个字符串变量:

my $var = "1234 23.3\"
如何提取
空白
之间的数字?在本例中,输出应为23


上述var字符串可能不同,因此有时可能是
123 4.32
123 334.4\
,其中输出应分别为4或334。

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

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

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

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

要匹配句点或圆点,请注意圆点是一个正则表达式元字符,它将匹配任何字符(换行符除外),请参见和,因此要显式匹配圆点,应将其转义

因此,给定
$var=“1234 23.3”
,以下语句:

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

应将空格后和点前的数字提取到捕获组变量
$1
中。有关
+
元字符的更多信息,以及有关捕获组的信息,请参阅。

perl-E'$var=“1234 23.3”$var=~/\s+(\d+)\。/;说$1'
你试过什么吗?@HåkonHægland-谢谢你,伙计,这帮了我的忙。请继续回答,我会批准的。对于其他人,感谢大家对这个简单问题的否定。当我问一些更复杂的问题时,通常没有人回答。