почему функция "gsub" действует по-разному для маленькой буквы и заглавной буквы при замене при использовании "\" - PullRequest
1 голос
/ 11 июля 2019

При замене «\ a» из строки с использованием функции «gsub» выдается правильный вывод, как и ожидалось, но аналогичным образом при замене «\ A» появляются сообщения об ошибках. Почему это происходит?

> asd = "\asd"
> gsub("\\a","",asd)
[1] "sd"
> gsub("\\A","","\Asd")
Error: '\A' is an unrecognized escape in character string starting ""\A"
> 

Ожидаю вывод как "sd"

1 Ответ

1 голос
/ 11 июля 2019

\ является escape-символом как в R, так и в регулярных выражениях.

> cat("\A")
Error: '\A' is an unrecognized escape in character string starting ""\A"

> cat("\\A")
\A

Таким образом, вам нужно экранировать \ в вашей строке, а затем "двойной" экранировать ее в регулярном выражении.

> gsub("\\\\A","","\\Asd")
[1] "sd"

\a - это специальный символ, которыйпочему это работает заменить его.Если вы запускаете cat("\a") в командной строке, он звонит в колокол, как и alarm().

Это, однако, выдает ту же ошибку:

> gsub("\\c","","\csd")
Error: '\c' is an unrecognized escape in character string starting ""\c"

Так что это не вопрос заглавных букв

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...