2015-04-12 23 views
4

使用perl,是否有任何單個命令給我一個字符串內的行數?perl字符串中的行數

my $linenum= .... $str .... 

應該爲當字符串是空的,單線和多線工作。

+1

你想看看這兩個Perl的功能是'換行字符\n數split()'將字符串拆分爲一個列表和'scalar()',當給定一個列表時返回列表的長度。 –

+0

@DovGrobgeld你是指'scalar(split($ str))'?它沒有工作 – dibonao

+0

檢查'split()'的文檔,例如由'perldoc -f split'。 'split()'有兩個參數。第一種是用於分割的模式(可以是字符串),以及用於分割的字符串。例如。 '分裂( '\ n',$ STR)」。 –

回答

-3

嘗試使用正則表達式

+0

我是新的perl。任何建議的正則表達式? – dibonao

+1

my $ count =()= $ str =〜/ \ n/g; – rplantiko

7

你可以指望在字符串中(適用於Mac換行符或\r

my $linenum = $str =~ tr/\n//; 
+0

您應該添加'$ number_of_lines ++;'給結果加1,因爲只計算新行字符'\ n'跳過最後一行。 – Omar

+1

這取決於最後一行是否被'\ n'終止。 '$亞麻布++如果$ str!〜/ \ n \ z /' –