我正在努力如何删除带有"/"的数字之后的所有内容,例如,我有以下向量
x <-c("Rua 12 de outubro", "Outubro 1/900", "Rua A 4/2 outracoisa", "Rua a 2")
我想获得
x <-c("Rua 12 de outubro", "Outubro", "Rua A", "Rua a 2")
即,排除带有"/"的数字,并在它们后面加上所有数字。
我试图使用gsub
但没有成功。关于我该怎么做的任何 int?
假设字符串中只有一个"/":
x <-c("Rua 12 de outubro", "Outubro 1/900", "Rua A 4/2 outracoisa", "Rua a 2")
sub("(.*) \d+/\d+.*", '\1', x)
#[1] "Rua 12 de outubro" "Outubro" "Rua A" "Rua a 2"
使用sub
执行替换并将字符串分成两个捕获组(...)
:一个在要保留的/
字符之前,另一个在要丢弃的字符之后。然后用\1
引用第一个捕获组,并将整个字符串替换为该组:
sub("(.+)(/.+)", "\1", x)
[1] "Rua 12 de outubro" "Outubro 1" "Rua A 4" "Rua a 2"
或者,您可以通过否定字符类[^/]+
定义第一个捕获组,该类允许除/
字符之外的任何字符一次或多次:
sub("([^/]+)(/.+)", "\1", x)