PERL正则表达式怎么提取两个特定符号之间的内容

要把aligned = 11.8424277753889 (426327399914 frames)中的11.8424277753889 提取出来。
$1$2神马的不管用啊。始终整个字符串都回出现!能不能自己测一个过了的发一下。
按说应该是匹配=和(之间的内容。但我弄出来总是全体字符串。

第1个回答  2011-06-22
split中用正则 和 直接用正则捕获,看看结果有木有!
#!/usr/bin/perl -w
use strict;
use warnings;
my $a = 'aligned = 11.8424277753889 (426327399914 frames)';

my $b = (split /\s+=\s+|\s+\(/, $a)[1];
print $b,"\n";

if ($a =~ /=\s+([\d\.]+)/)
{
print $1,"\n";
}本回答被提问者采纳
第2个回答  推荐于2018-05-17
$a='aligned = 11.8424277753889 (426327399914 frames)';
$a=~/(.*)=(.*)\((.*)/;
print $2;

已测,结果 : 11.8424277753889本回答被网友采纳
第3个回答  2011-06-22
/=\s*([\d\.]+)\s*\(/
print $1;
相似回答