【问题标题】:Extract numbers just before the specific word/text [closed]在特定单词/文本之前提取数字[关闭]
【发布时间】:2019-09-16 10:35:25
【问题描述】:

我有一些字符串,例如

  • 70cl 免税 utscsx6
  • 5cl csx192
  • 1 升免税 uts csx12
  • 5cl csx192

我想在不同的行中提取70cl,5cl,1 ltr,5cl。 这里的每个例子都代表了个人的观察。

【问题讨论】:

  • 试试这个:gsub("(?<=cl|ltr).*", "", df$row , perl = T)

标签: r regex regex-lookarounds


【解决方案1】:

显然,您要匹配的片段位于源行的开始处。

还要注意:

  • 以非空数字序列开头,
  • 可以跟一个空格,
  • 那么有一个度量单位 - 一个非空的字母序列,
  • 最后,要匹配的文本之后,有一个空格。

因此,将其翻译成正则表达式,正则表达式可以是:

^\d+ ?[a-z]+(?= )

带有gm 选项(全局,并且^ 匹配每行的开头)。

有关工作示例,请参阅https://regex101.com/r/b4NdNb/1。每个匹配项都包含您想要的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-21
    • 2021-08-01
    • 1970-01-01
    • 2021-12-31
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 2022-05-31
    相关资源
    最近更新 更多