3

我正在尝试用 R 替换以下 URL 中的"/?"by :"?"

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,...),但我总是遇到同样的问题,它找不到字符串"/?",因为它是两个特殊字符。

4

3 回答 3

3

这是在这种情况下如何使用正则表达式替换功能sub

x <- 'http://www-03.ibm.com/systems/fr/express/offerings/systemx_intel/?cmp=333AD&c'
sub('/\\?','?',x)
于 2013-10-02T12:49:53.470 回答
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"

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

于 2013-10-02T14:20:50.040 回答
2

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

gsub('/\\?','?', x)
于 2013-10-02T13:39:51.420 回答