正则表达式拔出名字

时间:2018-03-03 03:14:18

标签: r

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

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

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

    place
 Village3
District2
    Farm1

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

这也有效:

trimws(basename(df$place))