Как удалить обратную косую черту sh от символа в R? - PullRequest
0 голосов
/ 27 марта 2020

Не могу поверить, что это так сложно.

t1 <- "1\2\3\4\5"

Что не сработает.

t1 <- gsub('\\','', t1)
t1 <- gsub('\\\\','', t1)
str_remove(t1, "\\")
str_remove(t1, "\\\\")

Что также не сработает:

  1. Регулярно удаляет все не-алфавитные символы c. (Это пример, текст более сложный, чем HTML - Javascript / SVG).

PS: я посмотрел другие ответы на похожие вопросы здесь и в книге профессора Беркли. , Не сработает.

1 Ответ

1 голос
/ 27 марта 2020

На самом деле ваша вторая попытка с gsub на самом деле верна:

t1 <- gsub("\\\\", "", t1)

Литеральная обратная косая черта sh в регулярном выражении требует четыре обратных косых черт (по две на буквальную обратную косую черту). sh, один из которых требуется, чтобы убежать от другого бэксла sh). Причина, по которой вышеприведенное не работает, состоит в том, что строка t1 была определена неправильно. Вы должны были определить его как:

t1 <- "1\\2\\3\\4\\5"
gsub("\\\\", "", t1)
[1] "12345"

Литеральная обратная косая черта sh в буквенном символе R требует две обратные косые черты. То, что вы изначально определили как t1, на самом деле является набором управляющих символов:

t1 <- "1\2\3\4\5"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...