【问题标题】:Extracting string part that follows a pattern in R [duplicate]提取遵循R中模式的字符串部分[重复]
【发布时间】:2019-08-07 03:24:34
【问题描述】:

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

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>")

但我只想提取介于?&gt; 之间的数字。

在本例中,我想提取 74646 和 204536。有没有办法自动收集这些数字,然后将它们放入新的数据框中?

【问题讨论】:

    标签: r string


    【解决方案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"
    

    【讨论】:

      猜你喜欢
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 2020-11-02
      • 2011-12-10
      • 2022-01-18
      相关资源
      最近更新 更多