2016-03-08 52 views
0

我知道允許替換被解釋爲表達式的特殊\ =序列 - 我很好奇它是否可能將匹配組以某種方式傳遞給表達式。用shell命令輸出的正則表達式替換爲正則表達式組作爲參數

例如,這完美地工作(隨機洗牌之間範圍內取代「50」 -7和7):

%s/50/\=substitute(system('echo $(shuf -i 1-14 -n1) - 7 | bc'), '\n', '', 'g')/gc 

我喜歡什麼,在捕捉到「50」的能力並將它傳遞給命令。

從我的幫助中,它說:

「截至提到的字符的特殊含義|子取代,特別| 不 不除< CR應用>。」

從我的理解,這意味着特殊的序列,如組反向引用將不會被解釋並相應地提供給表達式。

如果我錯了,或者我是對的,但有一個解決方法 - 分享你的技巧將不勝感激。

回答

0

如果我只花了幾分鐘的時間看,我自己找到了答案。 無論如何 - 答案在於'submatch()'函數,它正是我所需要的。