在指定字符之前找到字符

时间:2018-08-22 01:54:05

标签: r regex substring gsub

我想用gsub减去字符。

# data
Column name
NORTH HANOVER TWP N J
MULLICA TWP NJ
VERONA N J

我想要的是:

# result
Column name
NORTH HANOVER
MULLICA
VERONA

我尝试这样的事情:

gsub(" TWP.", "", "NORTH HANOVER TWP N J")
[1] "NORTH HANOVERN J"

我得到了错误的结果。
如何修复我的代码?

2 个答案:

答案 0 :(得分:2)

请尝试以下操作(考虑到您的实际输入与所示示例相同)。

gsub(" TWP.*| N.*","",cal)

输出如下。

[1] "NORTH HANOVER" "NORTH HANOVER" "MULLICA"       "VERONA" 

数据如下。

cal <- data.frame(column_name=c("NORTH HANOVER","NORTH HANOVER TWP N J","MULLICA TWP NJ","VERONA N J"))

答案 1 :(得分:1)

更通用的模式(并不是说它是100%的失败证明)

cal <- c("NORTH HANOVER TWP N J","MULLICA TWP NJ","VERONA N J","Sierra Nevada TWP NJ")

gsub("\\sTWP\\s?N\\s?J.*|\\sN\\s?J.*","",cal)

#[1] "NORTH HANOVER" "MULLICA"       "VERONA"        "Sierra Nevada"

因为标记的答案将失败。