正则表达式拔出名字

问题描述 投票:0回答:2

我有一个参差不齐的地名列表,例如

                                  place
        District1 / Commune2 / Village3
                    Region1 / District2
District3 / Commune1 / Village1 / Farm1

所以我们在不同的分辨率级别都有地名。我想提取用于地理编码目的的姓氏,例如

    place
 Village3
District2
    Farm1

有人可以给我看一个正则表达式,搜索最后一个“/”然后只保留地名吗?非常感谢。令我困惑的是R正则表达式查询中的转义字符。

r
2个回答
2
投票

用空字符串替换所有".*",包括最后一个斜杠和空格"/ "

gsub(".*/ ", "", DF$place)
## [1] "Village3"  "District2" "Farm1" 

注意

可重复形式的输入是:

Lines <- "
                                  place
        District1 / Commune2 / Village3
                    Region1 / District2
District3 / Commune1 / Village1 / Farm1"
DF <- read.table(text = Lines, header = TRUE, as.is = TRUE, sep = ";")

1
投票

这也有效:

trimws(basename(df$place))
© www.soinside.com 2019 - 2024. All rights reserved.