提取遵循R中模式的字符串部分[重复]

Posted

技术标签:

【中文标题】提取遵循R中模式的字符串部分[重复]【英文标题】:Extracting string part that follows a pattern in R [duplicate] 【发布时间】: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。有没有办法自动收集这些数字,然后将它们放入新的数据框中?

【问题讨论】:

【参考方案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"

【讨论】:

以上是关于提取遵循R中模式的字符串部分[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从遵循模糊模式 SQL Netezza 的字符串中提取序列

从遵循特定模式的列中提取字符串

从R中的字符串中提取对象数组[重复]

使用R从文本中提取子字符串[重复]

提取两个字符R之间的字符[重复]

在R中提取以标点符号开头和结尾的文本[重复]