我从网络上收集了一个数据集,其中包含一组遵循某种模式的字符串,例如:
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。是否有一种方法可以自动收集这些数字,然后将其放入新的数据框中?
答案 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"