提取遵循R中模式的字符串部分

时间:2019-03-16 02:33:27

标签: r string

我从网络上收集了一个数据集,其中包含一组遵循某种模式的字符串,例如:

string <- c("<option value="AÉCIO NEVES|1117315%23221!MG=PSDB?74646">AÉCIO NEVES</option>", 
"<option value="KIM KATAGUIRI|1117562%23366!SP=DEM?204536">KIM KATAGUIRI</option>")

但是我只想提取?>之间的数字。

在此示例中,我要提取74646和204536。是否有一种方法可以自动收集这些数字,然后将其放入新的数据框中?

1 个答案:

答案 0 :(得分:1)

您可以通过多种方式提取数字。例如,使用stringi包,您可以处理任务。我在正则表达式中使用了积极的前瞻性。我提取了在?之前和在"之后的数字。

string <- c("<option value=\"AÉCIO NEVES|1117315%23221!MG=PSDB?74646\">AÉCIO NEVES</option>", 
            "<option value=\"KIM KATAGUIRI|1117562%23366!SP=DEM?204536\">KIM KATAGUIRI</option>")


unlist(stri_extract_all_regex(str = string, pattern = "(?<=\\?)[0-9]+(?=\")"))

#[1] "74646"  "204536"
相关问题