2012-08-01 89 views
0
DESCR: "10GE SR" 

我需要匹配上面这部分,这是我剩下的字符串的一部分。即时通讯在Perl中使用正则表达式。 我试图在perl中使用正则表达式解析字符串

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

,但即时通讯无法理解怎么考虑我的字符串里的空格。这些空间可以出现在引号内的任何地方。有人可以帮我吗。

回答

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

if ($str =~ /DESCR: \"([a-zA-Z0-9\s]+)\"/) { 
    print "$1\n"; 
} 
0

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

if ($line =~ /DESCR: \"((?:[^\\"]|\\.)*)\"/) { 
    print "$1\n"; 
} 
0

这可能是简单的:

if ($line =~ /DESCR: "([^"]+)"/) { 
    print "$1\n"; 
} 
相关问题