替换“/?”来自字符串

时间:2013-10-02 12:24:29

标签: regex r

我正在尝试将以下网址中的"/?"替换为"?"与R:

http://www-03.ibm.com/systems/fr/express/offerings/systemx_intel/?cmp=333AD&c

所以它会变成:

http://www-03.ibm.com/systems/fr/express/offerings/systemx_intel?cmp=333AD&c

我尝试过不同的功能来替换它(str_replace_all,...)但我总是遇到同样的问题,它找不到字符串"/?",因为它是两个特殊字符。

3 个答案:

答案 0 :(得分:3)

这是在这种情况下使用正则表达式替换函数sub的方法:

x <- 'http://www-03.ibm.com/systems/fr/express/offerings/systemx_intel/?cmp=333AD&c'
sub('/\\?','?',x)

答案 1 :(得分:3)

您还可以将subgsubfixed=TRUE参数设置一起使用。这将使用表示您正在搜索的模式的字符串,因为它是并忽略任何特殊字符。

string <- "http://www-03.ibm.com/systems/fr/express/offerings/systemx_intel/?cmp=333AD&c"
sub("/?","?",string,fixed=TRUE)
[1] "http://www-03.ibm.com/systems/fr/express/offerings/systemx_intel?cmp=333AD&c"

这在类似情况下可能有所帮助。

答案 2 :(得分:2)

使用sub替换第一次出现的模式,gsub替换所有出现的内容。

gsub('/\\?','?', x)