2010-11-19 3 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

+2

또한 첫 줄에 누락 된 세미콜론을 수정하고 여분의'}'을 삭제하면 제대로 작동합니다. – cdhowie

+0

나는 질문을 변경했다. 다시 확인하십시오 – Tree

답변

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

관련 문제