2012-08-01 62 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"; 
}