嗨,我有以下字符串從文件中讀取:查找的數字串第一個數字
231 352 502 24 532 0 1234 5
如何使用一個Perl的正則表達式搶到的一串數字的第一個數字?
我曾嘗試以下無濟於事:
$num =~ /(\d+)/
感謝。
嗨,我有以下字符串從文件中讀取:查找的數字串第一個數字
231 352 502 24 532 0 1234 5
如何使用一個Perl的正則表達式搶到的一串數字的第一個數字?
我曾嘗試以下無濟於事:
$num =~ /(\d+)/
感謝。
對於給定的樣本輸入,wokrs罰款:
$ echo 231 352 502 24 532 0 1234 5 | perl -n -e 'print $1 if /(\d+)(.*)/'
231
$ echo 231 352 502 24 532 0 1234 5 | sed -r 's/([0-9]+)(.*)/\1/'
231
似乎(\ d +)是正確的,但由於某種原因我得到了字符串中的所有數字。我想知道如果我的文件輸入是奇怪的?我將不得不進一步研究這一點。 – user1220086
發佈您的命令及其輸出。 – slayedbylucifer
$ line = /(\ d +)/; $ line = 231 352 502 24 532 0 1234 5. 它打印整行。 – user1220086
$s = "231 352 502 24 532 0 1234 5";
($num) = $s =~ /(\d+)/;
print $num;
你非常接近。
嘗試此
my $line = '231 352 502 24 532 0 1234 5';
my ($num) = $line =~ /(\d+)/;
print $num;
輸出
231
重複的答案。這個確切的代碼已經在@ ooga的答案中提供了。 – slayedbylucifer
@slayedbylucifer:儘可能晚地聲明*變量很重要。你的標籤是什麼意思? – Borodin
$ NUM =〜/(^ \ d +)/,希望這將工作值將存儲在$ 1中。 –