2010-06-24 45 views
-3

我有以下Perl命令的問題 如何匹配文件中的所有「1234」字符串,但如果某些字符在「1234」之前連接,則它不匹配,我的問題是:如果字符串「1234」在行中間,那麼它不符合原因?什麼不需要匹配PERL +完全匹配字符串(從左側)在行

a ass 1234= OLD 
bbb ddd 1234= OLD 
1234= OLD 

例:

Perl的命令:什麼需要匹配

perl -pe 's/OLD/NEW/ if /^1234/' file 

a1234= OLD 
sss q1234= OLD 
+1

停止發佈重複項。 – Ether 2010-06-25 02:26:53

回答

0

^比賽「開始該行「。嘗試刪除正則表達式中的那個字符。用空格字符替換它。

2

^更改爲\b。只有當1234是單詞的開頭時,這將匹配。 (如有必要,請參閱perldoc perlre瞭解有關構成「單詞」的詳細信息!)

+0

我有問題,當參數是* .55555 那麼它不匹配? – yael 2010-06-24 13:05:32

+2

你已經從上一個編輯了這個問題,現在大家的答案都沒有意義......我認爲最好將問題恢復到之前的狀態,然後用新問題提出一個新問題。 ..如果你在這裏發佈鏈接,我肯定每個看過這個問題的人都會看看那個問題:-) – psmears 2010-06-24 13:19:56

+0

由於yael轉發了較新的問題,所以我將它恢復爲前一個問題。 http://stackoverflow.com/questions/3110329/perl-how-to-match-special-characters/3110368#3110368 – 2010-06-24 14:36:47