2010-11-19 71 views
-4

可能重複:
converting multline string to array當某些值包含=時,如何通過=來分割字段和值?

my $text = "a=10|b=20|c=20|d=\' I am multing line string A=10 
dfasd fas 
d 
as df 
asd 
f a 
sd 
fas 
d fsd \'|e=10" 

foreach my $pairing (split(/\|/,$text)) { 
     print "$pairing "; 
     my ($field,$value)=split(/=/,$pairing); 
     print "**$field,$value**"; 
     } 


its not printing a= 10 , b=20 , c=20 , and 
d=I am multing line string A=10 dfasd fas 
    d 
    as df 
    asd 
    f a 
    sd 
    fas 
    d fsd , e =10 ? 
+2

如何是一個多行字符串? – cdhowie 2010-11-19 17:31:05

+2

另外,在第一行修復缺失分號並刪除多餘的'}'後,它工作正常。 – cdhowie 2010-11-19 17:32:27

+0

我改變了這個問題。再次檢查 – Tree 2010-11-19 17:33:18

回答

2

指定第二split限制:

#!/usr/bin/perl 

use strict; use warnings; 

my $text = "a=10|b=20|c=20|d=\' I am multing line string A=10 
dfasd fas 
d 
as df 
asd 
f a 
sd 
fas 
d fsd \'|e=10"; 

foreach my $pairing (split qr{\|}, $text) { 
    my ($field, $value) = split /=/, $pairing, 2; 
    print "**$field,$value**\n"; 
} 
+2

+1只是爲了展示WTF的心理能力這個問題是關於 – mob 2010-11-19 18:10:02

相關問題