У меня много немецких названий улиц.Большинство из них заканчиваются словом ...strasse
.Я хочу заменить strasse
его сокращением str
, допускающим незначительные ошибки (1 или 2 символа отсутствуют или неправильные), такие как strae
или strassee
.
Я пробовал много вещей и посмотрел некоторыебольше:
street_names <- c("GERBERSTRAE", "NEUE STRAASSE", "SCHLOSSSTASSE", "HAUPTSTRASSE", "WINZERGASSE")
> gsub("[STRASSE]{5,7}S?T?R?A?S?S?E?$" , "STR", street_names, perl = T)
[1] "GERBSTR" "NEUE STR" "SCHLOSTR" "HAUPSTR" "WINZERGASSE"
> gsub("S?T?R?A?S?S?E?$" , "STR", street_names, perl = T)
[1] "GERBERSTR" "NEUE STRASTR" "SCHLOSSSTR" "HAUPTSTR"
[5] "WINZERGSTR"
Но до сих пор все они понимают правильно, а некоторые неправильно, и я не знаю, как их объединить.(«Winzergasse» не должно совпадать, так как оно заканчивается на Gasse
, что означает переулок)
Любая помощь очень ценится.
EDIT :
больше примеров
street_names <- c("GERBERSTRAE", "NEUE STRAASSE", "SCHLOSSSTASSE", "HAUPTSTRASSE", "LINDENSASSE",
"WINZERGASSE", "PARKSTRASE", "ALTE STTRASSE", "BACHSTRAS", "LANGE SRASS")