0
DESCR: "10GE SR" 

我需要匹配以上部分,这是我其余字符串的一部分。我在 perl 中使用正则表达式。我试过

if ($line =~ /DESCR: \"([a-zA-Z0-9)\"/) { 
   print "$1\n";
}

但我无法理解如何考虑我的字符串中的空格。这些空格可以出现在引号内的任何位置。有人可以帮我吗。

4

3 回答 3

2
$str = 'DESCR: "10GE SR"';

if ($str =~ /DESCR: \"([a-zA-Z0-9\s]+)\"/) { 
    print "$1\n";
}
于 2012-08-01T06:17:24.360 回答
0

看一下,这个模式可以匹配字符串中的双引号:

if ($line =~ /DESCR: \"((?:[^\\"]|\\.)*)\"/) { 
   print "$1\n";
}
于 2012-08-01T06:25:09.220 回答
0

它可能更简单:

if ( $line =~ /DESCR: "([^"]+)"/ ) { 
   print "$1\n";
}
于 2012-08-01T07:49:06.203 回答