如何拆分网址

时间:2014-07-24 14:52:33

标签: r

我想在R

中拆分下面的字符串

https://bugzilla.mozilla.org/show_bug.cgi?id=797998

这里我想分割网址,只希望得到的值为797998.

2 个答案:

答案 0 :(得分:2)

> library('httr')
> parse_url('https://bugzilla.mozilla.org/show_bug.cgi?id=797998')
$scheme
[1] "https"

$hostname
[1] "bugzilla.mozilla.org"

$port
NULL

$path
[1] "show_bug.cgi"

$query
$query$id
[1] "797998"


$params
NULL

$fragment
NULL

$username
NULL

$password
NULL

attr(,"class")
[1] "url"

答案 1 :(得分:1)

我建议使用上面的网址建议,但如果将其存储为字符串,则有以下几种选择:

str <- "https://bugzilla.mozilla.org/show_bug.cgi?id=797998"

# If you know it will follow the only '=' in the string
(num <- unlist(strsplit(str, "="))[2])

# If you know that the number is always the last 6 digits
(num <- substr(str, nchar(str)-5, nchar(str)))

# If you know the number always follows the last '=' sign
revstr <- rev(unlist(strsplit(str, NULL)))
index <- which(revstr == "=")
revnum <- revstr[1:(index-1)]
(num <- paste(rev(revnum), collapse = ""))

注意,如果您想要一个号码,则必须使用as.numeric()将这些转换为数字。否则,它们当前是作为字符串给出的。