誰能幫助我并解釋如何從包含特殊字符的字符向量中提取字串?
我正在使用這樣的向量:
txt <- c("{\"label\":\"Describes me best\",\"multiplier\":1}", "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}",
"{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}", "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}",
"{\"label\":\"Describes me best\",\"multiplier\":1}", "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}",
"{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}", "{\"label\":\"Describes me best\",\"multiplier\":1}",
"{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}", "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}"
)
> txt
[1] "{\"label\":\"Describes me best\",\"multiplier\":1}" "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}"
[3] "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}" "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}"
[5] "{\"label\":\"Describes me best\",\"multiplier\":1}" "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}"
[7] "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}" "{\"label\":\"Describes me best\",\"multiplier\":1}"
[9] "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}" "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}"
我只想提取剩下Describes me best的Somewhat describes me部分。
我試圖調整str_match()此處提供的解決方案https://stackoverflow.com/a/39086448/6925293,但可能由于多個特殊字符{\"等,我無法使其作業。
uj5u.com熱心網友回復:
由于這些是 JSON 字串,您可以使用jsonStrings包:
library(jsonStrings)
x <- "{\"label\":\"Describes me best\",\"multiplier\":1}"
jstring <- jsonString$new(x)
jstring$at("label")
# "Describes me best"
uj5u.com熱心網友回復:
這是你需要的嗎?
txt <- c("{\"label\":\"Describes me best\",\"multiplier\":1}", "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}",
"{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}", "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}",
"{\"label\":\"Describes me best\",\"multiplier\":1}", "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}",
"{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}", "{\"label\":\"Describes me best\",\"multiplier\":1}",
"{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}", "{\"label\":\"Somewhat describes me\",\"multiplier\":0.5}"
)
# With gsub you can catch between () a pattern, and get it with \\1
gsub(pattern = '.*"(.*)",.*', replacement = "\\1", x = txt)
#> [1] "Describes me best" "Somewhat describes me" "Somewhat describes me"
#> [4] "Somewhat describes me" "Describes me best" "Somewhat describes me"
#> [7] "Somewhat describes me" "Describes me best" "Somewhat describes me"
#> [10] "Somewhat describes me"
使用reprex v2.0.2創建于 2022-09-26
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/510288.html
標籤:rjson细绳
