Как сделать мою строку без учета регистра? - PullRequest
0 голосов
/ 08 апреля 2020

Ниже приведен фрагмент кода, который разбивает большой фрагмент текста, называемый «строками», на несколько строк. Он разделяется всякий раз, когда обнаруживает конечную пунктуацию (например,. Или?), Но исключает все периоды, следующие непосредственно за аббревиатурой, например Mr.

lines<-unlist(strsplit(lines, paste("(?<=(?<!", abbr,")[\\.\\?\\!])[\\s”’]"), perl = T))

Все сокращения сохраняются в векторе, называемом «abbr». «и все они пишутся с большой буквы (г-н, миссис, в отличие от г-н, г-жа). Проблема, с которой я столкнулся в своем коде, заключается в том, что я хочу, чтобы он не учитывал регистр и выявлял аббревиатуры в тексте, которые не были написаны заглавными буквами, и я хочу выполнить sh, не добавляя строчные версии каждой аббревиатуры в вектор abbr.

1 Ответ

1 голос
/ 08 апреля 2020

strsplit само по себе не обеспечивает нечувствительность к регистру, но вы можете сделать эквивалент (если не регулярное выражение) с

abbr <- "SomeText"
abbr1 <- strsplit(abbr, "")
abbr1
# [[1]]
# [1] "S" "o" "m" "e" "T" "e" "x" "t"
abbr2 <- paste(sprintf("[%s%s]", toupper(abbr1[[1]]), tolower(abbr1[[1]])), collapse = "")
abbr2
# [1] "[Ss][Oo][Mm][Ee][Tt][Ee][Xx][Tt]"

и использовать abbr2 вместо abbr в вашем коде выше.

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