2010-01-20 81 views
-2

我有一個正則表達式的問題。我是 試圖提取whileif中的多個條件。我在Windows XP上使用Perl 5.8.6。如何使用此Perl程序獲得正確的輸出?

@conditions是恰好包含while循環內容的陣列,例如:

while 
(
    (condition A) && 
    (condition B) 
) 

可以假定@conditions數組包含上述數據:

my perl code sampled: 

my $count = 0; 
foreach my $condition (@conditions) { 
    $count++; 
    my ($open,$close) = $condition =~ /((?: [(] | \s)*) (.*) /msx; 
    print "$open $count $close"; 
    } 

和我的C代碼:

while 
(
    ( 
    1 condition A && 
    2 condition B 
    )&& 
    (
    3 condition C 
    4 condition D 
    ) 
) 

我面臨問題時,我有一個而像這樣的循環:

while 
(

    (condition A) && 
    (condition B) 
) 

我需要的輸出必須是:

while 
(

    1 (condition A) && 
    2 (condition B) 
) 

但它打印有...

while 
(
    (1 condition A) && 
    (2 condition B) 

) 

誰能幫我用正則表達式讓我期望的輸出?

+1

「C」代碼和變量「@ conditions」之間的關係是什麼? 「@條件」如何初始化?不知道輸入是什麼,很難獲得理想的輸出。 – Dan

+0

類似的問題之前:http://stackoverflow.com/questions/1938821 – daxim

回答

2

您有print "$open $count $close";,並且您聲明您希望數字在括號之前。

因此使用print "$count $open$close";

+0

沒有其wrong..acc到你將打印作爲 而 1( 2(條件A)&& 3(條件B) ) 其總錯誤... – User1611

+0

我的代碼打印數字和左括號之間的空格。顯示你實際使用的代碼,因爲它不一樣。 – Anonymous