[英]Perl regex - match variable next to digit
我想在 rexeg 替換表達式中為組匹配添加一個數字后綴。 如何將匹配變量與實際數字分開?
如果我願意
hello 55 friends -> hello 551 friend
i am 29 happy -> i am 291 happy
我試過
s/([0-9]+)/$11/g;
但是如果我直接在$1
后面放一個1
,perl 會將它解釋為$11
(理所當然)。 在 bash 中,我可以寫${1}1
,但這在 perl 中似乎不起作用。
編輯:原來@toolic 是對的,s/([0-9]+)/${1}1/g; 確實有效,我的外殼有一個轉義問題。 如果您將該答案作為正確答案發布,我會接受! 謝謝
如評論中所述,用於反向引用的可選大括號(例如${1}
而不是$1
)在 perl 中確實有效。
您可以使用正則表達式 : (\\d+)
並用后綴 1 替換捕獲組
例子 :
<?php
$string = 'hello 55 friends i am 29 happ';
$pattern = '/(\d+)/';
$replacement = '${1}1';
echo preg_replace($pattern, $replacement, $string);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.