представлены в виде
"Mösser, Justus Justus»,
то просто «Mösser, J J»
Ну а если нет запятой, то просто оставить все как есть:
«Екатерина II» останется «Екатерина II»
Пробовал lookbehind после запятой (lookbehind ищет сразу после), пробовал нумеровать найденные группы (их может быть произвольное количество, поэтому отказался от идеи, да и некрасиво как-то), пробовал заменять все паттерны кроме первого найденного, но возникает проблема с условием про запятую. Пока что это самый близкий результат:
> gsub("\\G(?:\\A[^[:lower:]]*[[:lower:]]+,)?+[^[:lower:]]*\\K[[:lower:]]+", "", "Mösser, Justus Justus», perl = TRUE)
[1] «Mösser, J G"
Но если нет запятой, то не работает как надо:
> gsub("\\G(?:\\A[^[:lower:]]*[[:lower:]]+,)?+[^[:lower:]]*\\K[[:lower:]]+", "", "Justus Mosser", perl = TRUE)
[1] "J M"
а ты все хочешь одной регуляркой сделать? какой объем данных? у меня такое ощущение, что проще посплитить по пробелам и обработать отдельно
Обсуждают сегодня