Я работаю через R для Data Science, и одно из упражнений просит меня заменить все прямые косые черты на обратную.Я не могу заставить это работать.
> x <- c("//w+", "//b[aeiou]//b")
> str_replace_all(x, "/", "\\")
[1] "w+" "b[aeiou]b"
Онлайн-решение также не работает, поскольку оно заменяет одну косую черту двумя обратными косыми чертами.
> x <- c("//w+", "//b[aeiou]//b")
> str_replace_all(x, "/", "\\\\")
[1] "\\\\w+" "\\\\b[aeiou]\\\\b"
Редактировать: I 'Я добавляю это, чтобы уточнить мой вопрос.Я буквально хочу, чтобы строка "//" была "\\".Я не могу этого добиться.Вот пример в действии, показывающий, как это не работает.
Это работает, потому что я правильно использовал \ \ в строке:
> x <- "\\w+'\\w+"
> sentence <- "Open the crate but don't break the glass."
> str_extract(sentence, x)
[1] "don't"
Это не работает.Я по ошибке использовал / вместо \ и пытаюсь использовать str_replace_all, чтобы исправить это:
> y <- "//w+'//w+"
> z <- str_replace_all(y, "/", "\\\\")
> str_extract(sentence, z)
[1] NA
Это потому, что z - это не "\\ w + '\\ w +", как я хочу, а скорее:
> z
[1] "\\\\w+'\\\\w+"