Я пытаюсь стандартизировать некоторые нечетные строковые данные, используя регулярные выражения и str_replace_all
. В некоторых случаях я хочу использовать наборы символов (например, [abc]
) или «символы подстановки» (например, \d
), чтобы найти заменяемый символ, но я не хочу заменять эти наборы символов или символы подстановки.
Ниже data
- это тип данных, которые у меня есть, а clean
- это то, что я пытаюсь получить:
data <- c("1ac 2b", "1 a", "1a b", "1a2b", "0")
clean <- c("1ac 2b", "1a", "1ab", "1a 2b", "0")
Я пытался создать такие команды, как следующие:
attempt1 <- str_replace_all(data, "[abc]\\d", "[abc] \\d")
attempt2 <- str_replace_all(data, " [abc]", "[abc])
В обеих этих попытках я теряю нужные данные.
Кажется, что второй аргумент str_replace_all
принимает регулярные выражения, но третий аргумент вычисляется буквально, поэтому я заканчиваю тем, что заменяю символы, которые не хочу заменять.
Есть ли способ передать значение группового символа и наборов символов из части команды регулярного выражения в компонент замены?
В качестве альтернативы, есть ли другой способ решения этой проблемы, который кто-то порекомендует?
В сторону: я новичок в регулярных выражениях, и если кто-нибудь даст мне лучший термин, чем "подстановочные знаки", я соответствующим образом отредактирую свой пост.