Я использую gsub
, чтобы заменить слова в векторе в R, следуя идее словаря. То есть, заданные множества слов (синонимы) syn = c("Cash", "\\$")
, предполагается заменить словом (word = "MONEY"
).Regex R: текстовые и разделенные символы
text <- c("I spent 100$", "Cash can be used", "Cashier doesnt count", "a separate $")
До сих пор я использую это, чтобы заменить синонимы:
syn <- c("Cash", "\\$")
word <- "MONEY"
regex <- paste0("\\b(", paste(syn, collapse = "|"), ")\\b")
# "\\b(Cash|\\$)\\b"
gsub(regex, word, text)
# "I spent 100MONEY" "MONEY can be used" "Cashier doesnt count" "a separate $"
Который работает в том случае, когда $ -знак прилагается к буквенно-цифровых символов, но терпит неудачу, если знак отделяется. Если я откажусь от границы слова (\\b
), тогда будет найден $ -знак, но так же «Наличный» в «Кассе».
Вы знаете, как я могу иметь слово-границу, но также найти единственный $ -знак?
Итак, вы ожидаете '[1] "Я потратил 100 $" "Деньги могут быть использованы" "кассир счетчика оленьей кожи" "отдельные ДЕНЬГИ"'? –
Почти, я ожидаю 'c (« Я потратил 100MONEY »,« MONEY можно использовать »,« Cashier does not count »,« отдельный MONEY »)' – David
Но '$' в первой строке предшествует цифра. Как определяются границы слов? Не внутри писем? –