2012-10-26 28 views
10

我有一個文本,我怎樣才能用它們自己替換所有數字?Perl正則表達式替換自己的數字,只有一個更高

我試過的東西像下面這樣:

$buffer_content=~s/(\d)/($1++)/g; 
+0

你得到了什麼,如該嘗試的反應如何?只是字符串「2 ++」?你也需要它來處理長度大於一位數的數字嗎? – glenatron

+1

這個_may_正好符合有史以來最糟糕的正則表達式:-) – paxdiablo

+0

爲什麼? ___________ –

回答

14

使用s///e - 評估修改,你可以把任意Perl代碼在第二部分。

$x = "hello 3"; 
$x =~ s/([0-9]+)/$1 + 1/eg; 
print $x; 

// hello 4 

裁判:http://perldoc.perl.org/perlretut.html#Search-and-replace

+0

你的代碼提醒我關於簡單因子計算'print'輸入因子數\ n>「; $ _ = <>; $ _ = join「」,(1 .. $ _); 1(s /(\ d +)\ s(\ d +)/ $ 1 * $ 2/e); print; ' – gaussblurinc