r - 如何使用常见的前置模式从字符串中提取字符?

标签 r regex substring

我正在尝试使用 sub 函数将包裹编号与困惑的字符串变量隔离开来。包裹号码在字符串中由前面的“ParNum:”标识,所需号码周围的字符各不相同,但它们遵循这两个示例的一般形式。

string1 <- "Legal Description:  PrpId:0511552031 ParNum:0511552031 CC:05 T:7 R:8"
string2 <- "Legal Description:  Rmrk:PT OF PrpId:0511552031 ParNum:0511552031 CC:05 T:7 R:8"

惨遭失败的努力:

> sub("[^:]*:)*[^:]*:", "", string1)
[1] "0511552031 ParNum:0511552031 CC:05 T:7 R:8"

期望的结果:

0511552031

最佳答案

尝试在 sub 中使用以下模式:

.*ParNum:([^[:blank:]]*).*

这与 ParNum: 匹配,然后捕获 ParNum: 后面的任何非空格/制表符。然后,捕获的数字将在第一个捕获组中以 \\1 形式提供。

代码片段:

string1 <- "Legal Description:  PrpId:0511552031 ParNum:0511552031 CC:05 T:7 R:8"
sub(".*ParNum:([^[:blank:]]*).*", "\\1", string1)
[1] "0511552031"

Demo

关于r - 如何使用常见的前置模式从字符串中提取字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47587210/

相关文章:

r - Tidymodels(使用 fit_samples() 拟合随机森林) : Fold01: internal: Error: Must group by variables found in `.data`

jquery - 用 jquery 替换反斜杠

javascript - 在 jQuery 中用 html 标记替换特定字符

Javascript 正则表达式 多个小数

r - 更改 R 中过滤后的 data.frame 中一列中的所有值

r - 使用 apply() 函数迭代不同的数据类型不起作用

RStudio 0.97.551 在控制台中显示无法识别的字符

python - 如果来自子字符串列表,则从列表中删除字符串

python - 从字符串开头删除子字符串

regex - 在 PHP 中使用正则表达式返回字符串的一部分