Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除除R中特定位置的单词以外的字符串_R_String_Gsub - Fatal编程技术网

删除除R中特定位置的单词以外的字符串

删除除R中特定位置的单词以外的字符串,r,string,gsub,R,String,Gsub,我有以下字符串 string <- c("Trade (% of GDP) – Latin America & Caribbean (WB/WDI/NE.TRD.GNFS.ZS-ZJ)", "Trade (% of GDP) – North America (WB/WDI/NE.TRD.GNFS.ZS-XU)" ) string您可以使用正则表达式执行此操作。基于这两个示例,我确定的两种模式是1)删除-之前的所有内容,以及2)删除parens()中的所有内容 这里有一个解决方案

我有以下字符串

string <- c("Trade (% of GDP) – Latin America & Caribbean (WB/WDI/NE.TRD.GNFS.ZS-ZJ)", "Trade (% of GDP) – North America (WB/WDI/NE.TRD.GNFS.ZS-XU)"  )

string您可以使用正则表达式执行此操作。基于这两个示例,我确定的两种模式是1)删除
-
之前的所有内容,以及2)删除parens
()
中的所有内容

这里有一个解决方案:

string[1]“拉丁美洲和加勒比”“北美”
由(v0.2.1)于2019-03-10创建

正则表达式
^.*\\s–\\s
的第一部分说“在找到
-
之前,从字符串开头抓取所有字符”


在正则表达式中,
表示或,因此第二个正则表达式
\\s*\\([^\\)]+\
标识括号内的所有文本(以及前导/尾随空格)。这要归功于正则表达式。

您可以使用正则表达式来实现这一点。基于这两个示例,我确定的两种模式是1)删除
-
之前的所有内容,以及2)删除parens
()
中的所有内容

这里有一个解决方案:

string[1]“拉丁美洲和加勒比”“北美”
由(v0.2.1)于2019-03-10创建

正则表达式
^.*\\s–\\s
的第一部分说“在找到
-
之前,从字符串开头抓取所有字符”

在正则表达式中,
表示或,因此第二个正则表达式
\\s*\\([^\\)]+\
标识括号内的所有文本(以及前导/尾随空格)。这个正则表达式的功劳。

另一个想法

trimws(sub(".*–([^\\(]+).*", "\\1", string))
# [1] "Latin America & Caribbean" "North America" 
删除小于或等于
的所有内容以及开头括号
)后面的内容。我们使用捕获组来隔离所需的输出。
trimws
删除前导空格和尾随空格。

另一个想法

trimws(sub(".*–([^\\(]+).*", "\\1", string))
# [1] "Latin America & Caribbean" "North America" 

删除
之前和之后的所有内容以及开口括号
。我们使用捕获组来隔离所需的输出。
trimws
删除前导空格和尾随空格。

我认为您要查找的可能是正则表达式。我认为您要查找的可能是正则表达式的副本。可能的副本出于某种未知原因,我重新运行代码tod是的,字符串“Trade”没有消失。我试图查看我的代码中是否有任何无意的更改,但没有发现任何更改。你认为问题与R有关吗?@msh855-很可能R本身有任何损坏(因为我已经使用R 10多年了,从未经历过类似的事情)。您的输入
string
是否发生了变化?更有可能的是
string
的格式发生了变化,正则表达式不再捕获字符串的各个部分。您能否重新上传
string
?由于我不知道的原因,我今天重新运行了代码,字符串“Trade”没有消失。我试图看看是否有任何意外我的代码发生了变化,但我没有发现任何变化。你认为这个问题与R有关吗?@msh855-很可能R本身会有任何损坏(就像我使用R 10多年,从未经历过类似的事情一样)。您的输入
字符串
是否更改?更有可能的是
字符串
的格式已更改,并且正则表达式不再捕获字符串的部分。您能否重新上载
字符串