提取字符串开头和结尾特定字符之间的值的正则表达式

问题描述 投票:0回答:1

我在数据集中有一个注释字段,我需要从中提取一些数字。字符串看起来像这样。我想要的数据将提取 series120_count =1 和穿越成功 =2

x <- "series120_count[1]; crossing_success[2]; tag_comments[small]"

我尝试了一些方法,但不太明白。例如,我尝试隔离series120_count如下,但还没有完全实现。

str_extract(x, "(?<=series120_count)(.+)(?=\\; )")

理想情况下,我想要一些在开头匹配“series120_count[”,并在括号关闭“]”时结束的内容。我也希望能够改变这一点,只需用“crossing_success [”替换第一场比赛即可获得穿越成功

regex stringr gsub
1个回答
0
投票

如果您想对两个字符串使用lookbehind断言并提取数字,您可以使用:

\b(?<=crossing_success\[|series120_count\[)\d+(?=])

正则表达式演示 | R 演示

library(stringr)

x <- "series120_count[1]; crossing_success[2]; tag_comments[small]"
pattern <- "\\b(?<=crossing_success\\[|series120_count\\[)\\d+(?=])"
matches <- str_extract_all(x, pattern)
print(matches)

输出

[[1]]
[1] "1" "2"
© www.soinside.com 2019 - 2024. All rights reserved.