R 如何在字母数字变量中排除数字(具有';/';)

R 如何在字母数字变量中排除数字(具有';/';),r,regex,gsub,R,Regex,Gsub,我正在努力解决如何删除带有“/”的数字后的所有内容,例如,我有以下向量 x <-c("Rua 12 de outubro", "Outubro 1/900", "Rua A 4/2 outracoisa", "Rua a 2") x假设字符串中只有一个“/”: x <-c("Rua 12 de outubro", "Outubro 1/900", "Ru

我正在努力解决如何删除带有“/”的数字后的所有内容,例如,我有以下向量

x <-c("Rua 12 de outubro", "Outubro 1/900", "Rua A 4/2 outracoisa", "Rua a 2")
x假设字符串中只有一个“/”:

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"        

x使用
sub
执行替换,并将字符串分为两个捕获组
(…)
:一个位于要保留的
/
字符之前,另一个位于要放弃的字符之后。然后用
\\1
返回到第一个捕获组,并用该组替换整个字符串:

sub("(.+)(/.+)", "\\1", x)
[1] "Rua 12 de outubro" "Outubro 1"         "Rua A 4"           "Rua a 2"
或者,您可以通过否定字符类
[^/]+
定义第一个捕获组,该类允许一次或多次使用除
/
字符以外的任何字符:

sub("([^/]+)(/.+)", "\\1", x)

请共享您试图查看您遇到的问题的代码。有人评论正确答案并排除。答案很有效,解决了我的问题。下面是答案:
sub(“^([^/]+)\\n不,答案比这简单。您的尝试是什么?编程问题是什么?
sub(\\s?\\d+/\\d++.*”,“”,x)
并在r4.0x-
sub(R)(\s?\d+/\d++*),“”,x)中使用新的字符串文本。
sub("([^/]+)(/.+)", "\\1", x)