gpt4 book ai didi

regex - 如何在 R 中使用正则表达式查找给定字符串旁边的模式

转载 作者:行者123 更新时间:2023-12-01 12:29:56 24 4
gpt4 key购买 nike

我有一个格式化的字符串,例如“segmentation_level1_id_10”,我想提取与其关联的级别编号(即单词级别之后的数字)。

我有一个分两步完成此操作的解决方案,首先找到模式 level\\d+ 然后用 missing after 替换级别,但我想知道是否可以在只需使用 str_extract

一步

示例如下:

library(stringr)

segmentation_id <- "segmentation_level1_id_10"

segmentation_level <- str_replace(str_extract(segmentation_id, "level\\d+"), "level", "")

最佳答案

一种方法是使用 stringr 库 str_extract 函数和具有后视功能的正则表达式:

> library(stringr)
> s = "segmentation_level1_id_10"
> str_extract(s, "(?<=level)\\d+")
## or to make sure we match the level after _: str_extract(s, "(?<=_level)\\d+")
[1] "1"

或者使用允许提取捕获的组文本str_match:

> str_match(s, "_level(\\d+)")[,2]
[1] "1"

这可以通过使用 gsub 并使用 str_match 中使用的相同捕获机制来完成,但也可以使用反向引用来恢复捕获的文本替换结果:

> gsub("^.*level(\\d+).*", "\\1", s)
[1] "1"

关于regex - 如何在 R 中使用正则表达式查找给定字符串旁边的模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35239715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com