从R中的文本中提取确切路径

extracting exact path from text in R

假设我有一个 data.frame,其中每一行都是如下文本:

text<-"Odysea Greek Extra Virgin 1.38 (0.43/100 ml) Subscribe & Save Get"

我想提取如下所示的文本部分(使用 R): “0.43/100 ml”,考虑到从一行到另一行,可能会有或多或少不同的空格和字符,例如。 “00.451 /100 gr”等

我试过了,但没用:

extraction<-as.data.frame(gsub(pattern=[^"\([:space:]*[:print:]*[:space:]*/[:space:]*[:print:]*\)]", "", text))

有什么想法吗?谢谢!

你可以试试

gsub('.*?\(([^)]*)\).*', '\1', text)
#[1] "0.43/100 ml"

演示

.*?\(([^)]*)\).*

Debuggex Demo

(?<=\()[^)]*(?=\))

尝试 this.See 演示。

https://regex101.com/r/pM9yO9/1

对于 r 它可能是

(?<=\()[^)]*(?=\))

Lookbehind 将确保您有 ( 并且前瞻性将确保您在捕获的事件之前有 )

也可以尝试 qdapRegex 包及其 rm_ 方法

library(qdapRegex)
rm_round(text, extract = TRUE)[[1]]
## [1] "0.43/100 ml"