【问题标题】:Using str_extract with perl to extract substrings使用 str_extract 和 perl 提取子字符串
【发布时间】:2026-01-13 18:30:02
【问题描述】:

我尝试使用 perl 和 stringr 来获取两个单词之间的字符,但我给出的示例不起作用并给出以下错误消息:

x = "PRODUCT colgate good but not good OKAY"
library(stringr)
str_extract(string = x, pattern = perl("(?<=PRODUCT).*(?=OKAY)"))

perl("(?

我期望结果是: "高露洁好但不好"

【问题讨论】:

  • 看起来 perl() 从 v. 1.3.0 起已从 stringr 中删除:see here

标签: r regex string stringr


【解决方案1】:

我们不需要任何perl 包装(使用stringr 版本-‘1.4.0’

library(stringr)
str_extract(string = x, pattern = "(?<=PRODUCT ).*(?= OKAY)")
#[1] "colgate good but not good"

【讨论】:

  • 感谢您没有回复 RFD。这解决了它。现在回到文档来了解还有哪些改进。