я получил действительно путают об использовании обратных ссылокобратная ссылка на R
strings <- c("^ab", "ab", "abc", "abd", "abe", "ab 12")
gsub("(ab) 12", "\\1 34", strings)
[1] "^ab" "ab" "abc" "abd" "abe" "ab 12"
gsub("(ab)12", "\\2 34", strings)
[1] "^ab" "ab" "abc" "abd" "abe" "ab 12"
Я знаю, что \ 1 относится к первому подмаски (чтение слева), \ 2 относится ко второму подмаски, и так далее. Но я не знаю, что означает этот подшаблон. Почему \ 1 и \ 2 дают разные выход
gsub("(ab)", "\\1 34", strings)
[1] "^ab 34" "ab 34" "ab 34c" "ab 34d" "ab 34e" "ab 34 12"
Кроме того, почему я удаляю 12 после того, как (AB), то это дает такой результат?
gsub("ab", "\\1 34", strings)
[1] "^ 34" " 34" " 34c" " 34d" " 34e" " 34 12"
Кроме того, что, если ab не имеет круглых скобок? Что это значит?
Я действительно перепутались с обратной ссылки и надеюсь, что кто-то может объяснить логику ясно
Это не «подшаблон», а группа захвата *. Если вы указали в Google, вы найдете много ресурсов Любой шаблон внутри скобок '()' является группой захвата. В любом случае, я не получаю одинаковых результатов в вашем первом примере. Последний элемент - 'ab 34', а не' ab 12'. – nicola
Да, вы правы , я вставил неверный вывод. –