用R提取字符串的多个部分

时间:2017-01-26 17:06:39

标签: r regex string

我有两个字符串:

data = "Product Number: #76 in c (See Top 10 products in this department)"
data1 = "Product Number: #321,222 in Thin Base Pizzas (See Top 10 products in this department)"

在R中使用str_match(),以下结果的正则表达式是什么?

  

str_match(数据,正则表达式)        [,1] [,2] [,3]
  [1,]“果汁中的#76”“76”“果汁”

     

str_match(data1,regex)        [,1] [,2] [,3]
  [1,]“薄底披萨#321,222”“321,222”“薄底披萨”

2 个答案:

答案 0 :(得分:0)

您可以使用此正则表达式来提取所需的信息:

#([0-9,]+) in ([A-z ]+)

您可以在此处查看:https://regex101.com/r/IM0wHV/1

答案 1 :(得分:0)

鉴于您的第一条评论,我认为这将概括为您提供产品编号。

sub(" .*", "", sub(".*#", "", data))
"76"

第二个将为您提供in(之间的任何内容。

sub(" \\(.*", "", sub(".*[0-9]+ in ", "", data))
"Fruit Juices"

不是一个理想的解决方案,但这是一个可以从这里开始的实例。