2011-10-27 44 views
-4

可能重複:
Split with line with perl用Perl分割線ver.5.10

我行:

producător: Carlo Ponti director de imagine: Piero Poletto monteur: Adriana Novelli Distribuţia: Faye Dunaway (Julia) Marcello Mastroianni (Valerion) Caroline Mortimer (Maggie) 

我想分裂:

producător: Carlo Ponti 
director de imagine: Piero Poletto 
monteur: Adriana Novelli 
Distribuţia: Faye Dunaway (Julia) Marcello Mastroianni (Valerion) Caroline Mortimer (Maggie) 

行數可能不同。 我試圖與回顧後零寬度斷言:

split /(?=\S+:\s*)/, $line 

如果行containe之前冒號(超過一個字(兩個或三個或更多)「導演去想象:」「攝影的主任:」「藝術總監: 「等),這種分裂行:

producător: Carlo Ponti director de 
imagine: Piero Poletto 
monteur: Adriana Novelli 
Distribuţia: Faye Dunaway (Julia) Marcello Mastroianni (Valerion) Caroline Mortimer (Maggie)  
+1

這個問題與其他兩次提問有什麼不同? – CanSpice

回答

2

你還沒有給我們上分割線,除了這些‘標題’,這似乎武斷的任何標準。除了最後一個,你所有的標題也都是小寫。

我因此假設你的標題將是靜態的,並提出以下幾點:

$line =~ /producător: (.*?) director de imagine: (.*?) monteur: (.*) Distribuţia: (.*)/; 
print "producător: $1\n"; 
print "director de imagine: $2\n"; 
print "monteur: $3\n"; 
print "Distribuţia: $4\n"; 

如果你可以爲分割提供更多有用的標準,我也許能提供一個更好的答案。