2010-07-25 69 views
1

的前綴我有一個CSV文件中的以下數據。追加n個爲整

2454,"dum my" 
12345,"dummy" 
300001,"du m m y" 

我想知道,我可以用什麼正則表達式,把它們變成

002454,"dummy" 
,"dummy" 
300001,"dummy" 

感謝。

回答

4

我建議你閱讀並分別改寫CSV使用文本:: CSV_XS文件和操作的領域,但如果你必須只使用正則表達式,像這樣:

sub strip_spaces { my $str = shift; $str =~ y/ //d; $str } 
s/(\d+)/ sprintf '%.6d', $1 /e; 
s/("[^"]+"$)/ strip_spaces($1) /e; 
+0

可我知道什麼是「Y '在strip_space內?因爲我總是看到'm'和's',但這是我第一次看到'y'。 – 2010-07-25 17:02:45

+1

@Yan:見[的perldoc perlop得到](http://perldoc.perl.org/perlop.html)下'TR ///'。 – Ether 2010-07-25 17:06:05

+1

法律鏈接:http://perldoc.perl.org/perlop.html#tr/SEARCHLIST/REPLACEMENTLIST/cds – ysth 2010-07-25 17:31:04