Как удалить ненужные символы в переменной?

#r

#r

Вопрос:

Как я должен удалить ненужные символы в переменной?

Козырный поезд ‘f0 «U’009F»U’009A»U’0082″f0 «U’009F»U’0087″U’00BA» f0 «U’009F»U’0087″U’00B8’

Должны отображаться только слова ‘The Trump Train’.

Комментарии:

1. «Я удаляю ненужные символы в переменной» Каковы здесь правила? Как вы определяете «нежелательные символы»? Вам нужно предоставить больше деталей и предпочтительно предоставить более одной строки (включая ожидаемый результат) для тестирования.

2. Повторяющийся набор U и шестнадцатеричных цифр предполагает, что это либо юникод, либо в какой-то момент был текст в юникоде. Если это unicode, вы могли бы изучить iconv (и многие вопросы по SO о unicode ссылаются на его использование). Если это буквенный текст, то, я думаю, вам нужно быть очень осторожным с регулярными выражениями здесь: сопоставление U и четырех цифр (с одинарными кавычками или без них) прямолинейно, но каковы f0 случаи? Как вы генерируете эту строку таким образом, чтобы она выглядела так, как была, но больше не является юникодом?

Ответ №1:

Это действительно зависит от того, как выглядит остальная часть вашей переменной. В любом случае, регулярные выражения являются мощным инструментом для таких приложений.

Предположим, ваша переменная выглядит следующим образом.

 x <- "The Trump Train 'f0''U'009F''U'009A''U'0082''f0''U'009F''U'0087''U'00BA''f0''U'009F''U'0087''U'00B8'"
  

Затем используйте это, gsub чтобы удалить все, что начинается с 'f , перед которым стоит пустой символ.

 gsub("\s'f. ", "", x)
# "The Trump Train"
  

Обратите внимание, однако, что это не обязательно работает во всех случаях. Например. если значение равно "Trump's Train 'f0'...." , результат будет "Trump" таким, потому что есть более раннее ' , понимаете?

Так что примите это как ответ или улучшите свой пример.