2016-08-01 15 views
5

vimを使用するときは、&を使用して置換内のマッチ全体を逆参照します。たとえば、次は「foobarに」と「foo」というのすべてのインスタンスを置き換えます。Rの正規表現に "&"と同等のものがありますか?

%s/foo/&bar/g 

ここ利益は怠惰である:私は試合中に括弧を入力する必要はありませんし、私は一つの文字を入力する必要が置換の逆参照のための2つの代わりに。おそらくもっと重要なのは、私が試合に打ち込んでいる間に私のバックレフレクションを理解することができず、認知負荷を軽減することです。

&に相当しますか?Rの正規表現内でvimで使用していますか(おそらくperl = T引数を使用しています)?

答えて

6

答えは基本R sub/gsub機能のためのNOで、this referenceを参照してください。

全体的な試合のための置換テキストトークンはありません。正規表現全体をキャプチャグループに置き、\1を使って正規表現マッチ全体を挿入します。

しかし、stringrに、あなたは\0を使用することができます。

> library(stringr) 
> str_replace_all("123 456", "\\d+", "START-\\0-END") 
[1] "START-123-END START-456-END" 
0

我々はgsubfn

library(gsubfn) 
gsubfn("\\d+", ~paste0("START-", x, "-END"), "123 456") 
#[1] "START-123-END START-456-END" 
を使用することができます
関連する問題