Предположим, что вы хотите заменить AXA
на AAA
, но также и AXXXXXA
с AAAAAAA
.Заменить группу захвата повторением одного символа при сохранении длины группы захвата
В принципе любое количество символов X
между двумя A
s с соответствующим числом A
s.
Использование gsub()
Я пробовал:
gsub(x = "AXA", pattern = "(A)(X+)(\\1)", replacement = "\\1\\1\\1")
который дает AAA
. Тем не менее, это AAA
независимо от того, как долго X+
получает. Как я могу получить доступ к длине подгруппы 2 на выходе?
Возможный дубликат этого: Replace repeating character with another repeated character
Но ИМХО достаточно различен для отдельного вопроса.
это 'x' символ означает любой символ или конкретно' x'? –
X - пример символа, который нужно заменить. Может быть любым персонажем, но он не меняется в файле. –
Итак, 'X' всегда один и тот же символ внутри файла? – zx8754