R regex удаляет апостроф юникода
Допустим, у меня есть следующая строка в R:
text <- "[Peanut M&M\u0092s]"
Я пытался использовать регулярные выражения, чтобы стереть апостроф путем поиска и удаления \u0092
:
replaced <- gsub("\\\\u0092", "", text )
Однако вышеприведенное, похоже, не работает и приводит к той же строке, что и оригинал. Как правильно сделать это удаление?
Кроме того, если я хотел удалить открытие и закрытие []
Это более эффективно, чтобы сделать все это за один раз или в отдельных строках?
1 ответ
Вы можете использовать [^[:ascii:]]
построить с Perl-подобным регулярным выражением, чтобы удалить не входящие в ASCII коды из вашего ввода, и вы можете добавить альтернативу [][]
также соответствовать квадратным скобкам:
text <- "[Peanut M&M\u0092s]"
replaced <- gsub("[][]|[^[:ascii:]]", "", text, perl=T)
replaced
## => [1] "Peanut M&Ms"
Посмотреть демо IDEONE
Если вы только планируете удалить \0092
символ, вам не нужно регулярное выражение типа Perl:
replaced <- gsub("[][\u0092]", "", text)
Посмотреть еще одну демонстрацию
Обратите внимание, что [...]
класс символов, который соответствует 1 символу, здесь, либо ]
или же [
, или же \u0092
, Если вы разместите ]
в начале класса персонажа он не нуждается в экранировании. [
не нуждается в экранировании внутри класса символов (в R regex и в некоторых других вариантах).