我需要從多行字符串中提取文本(字符和數字)。我試過的所有東西都沒有去掉換行符/回車符。在Perl中,如何從包含回車符和換行符的字符串中捕獲一串數字?
這裏是有問題的字符串:
"\r\n 50145395\r\n "
在HEX,它是:0D 0A 20 20 20 20 20 20 20 20 35 30 31 34 35 33 39 35 0D 0A 20 20 20 20
我曾嘗試以下:
$sitename =~ m/(\d+)/g;
$sitename = $1;
和
$sitename =~ s/^\D+//g;
$sitename =~ s/\D+$//g;
和
$sitename =~ s/^\s+//g;
$sitename =~ s/\s+$//g;
在任何情況下,我無法擺脫的任何不需要的字符。我已經在cygwin perl和Strawberry perl中運行過。
謝謝。
另請參閱http://perldoc.perl.org/functions/chomp.html – Ether 2009-11-25 19:20:23
您的目標不明確,因此您可以在地圖上找到答案。你想只抓住數字嗎?你是否試圖刪除換行符和回車?你想刪除所有空白嗎? – FMc 2009-11-25 19:33:59
如果你說「對於這個例子中我想提取的字符串'50145395',這個問題會更清楚。在所有情況下,我想提取的數據都是一串數字。」 4件事情是一個很好的問題:清楚地說明問題,一些示例代碼,示例輸入和匹配示例輸出。確保您的樣本數據包括任何優勢的情況下(可能是一個新行被允許的數字塊之間 - 在這種情況下,'\ r \ n 50145 \ r \ n395 \ RN'將是一個很好的樣本 – daotoad 2009-11-26 03:06:34