Согласно ?regexp
именованный захват доступен в regexpr()
и gregexpr()
начиная с R-2.14.0. К сожалению, он не еще доступен для sub()
или, оказывается, gsub()
. Таким образом, он все еще может быть полезен для вас, но, вероятно, потребует немного больше работы, чем вы могли бы надеяться.
(Несколько примеров именования групп в действии см. В разделе примеров ?regexpr
.)
ДОБАВЛЕНО ПОЗЖЕ, ПОСЛЕ ОТВЕТА ГРЕГА СНЕВА
Грег Сноу намекал на возможность сделать это с пакетом gsubfn
. Вот пример, который показывает, что gsubfn()
действительно может обрабатывать более девяти обратных ссылок:
require(gsubfn)
string <- "1:2:3:4:5:6:7:8:9:10:11"
pat <- "^(\\d)+:(\\d)+:(\\d)+:(\\d)+:(\\d)+:(\\d)+:(\\d)+:(\\d)+:(\\d)+:(\\d)+:(\\d)+"
gsubfn(pat, ~ paste(a,b,c,d,e,f,g,h,i,j,k,j,i,h,g,f,e,d,c,e,a), string)
# [1] "1 2 3 4 5 6 7 8 9 10 11 10 9 8 7 6 5 4 3 5 1"