2013-02-05 66 views
2

我在陣列@stat以下字符串:與領先的空白匹配一個單詞

r> 10.12.44.0/24        
    r> 10.11.48.0/24        
    *> 10.15.49.0/24        
    r> 10.16.53.0/24        
    r> 10.14.59.0/24        
    *> 10.18.63.0/24 

我想匹配一個誰擁有「*>」。請注意,在*之前有空格。我嘗試使用以下,但它沒有奏效。

foreach (@stat) { 
    if (/^\s\*\>/) { 
    # do something 
    } 
} 

我錯過了什麼?

+1

嘗試'/^\ s * \ * \> /'也許?這將允許多個空白字符在* –

+1

之前,這應該匹配,但您不必轉義'>'。您的輸入可能不包含您的想法。 – TLP

+0

感謝Steve&TLP用「/^\ s * \ * \> /」解決了問題,無需轉義「>」 – raindrop

回答

4

\s匹配一個空格字符。你發佈的內容實際上有兩個領先空間。以下應該做的伎倆:

foreach (@stat) { 
    if (/^\s*\*>/) { 
     # do something 
    } 
} 

如果不是,請仔細檢查陣列中的實際情況。

use Data::Dumper qw(Dumper); 

{ 
    local $Data::Dumper::Useqq = 1; 
    print(Dumper(\@stat)); 
} 
+0

@raindrop,已更新。 – ikegami

+0

非常感謝編輯我的問題和詳細的答案! – raindrop