从字符串中提取特定的文本数据

时间:2019-09-13 08:13:52

标签: r regex nlp

我有一个示例文本,例如“ 0 zacapa ambar 40%1l”。我需要帮助来提取本文的2个不同部分。 输出:
1)zacapa腰果
2)40%1l

示例:

1 smirnoff espresso twist 10l
1 captain morgan black spiced 10l
1 bulleit 95 rye 10l

所以我只想对字符串进行一些模糊匹配,并希望在2部分中提取细节。

1 个答案:

答案 0 :(得分:0)

假设您输入的是

x <- c("1 smirnoff espresso twist 10l", "1 captain morgan black spiced 10l", 
        "1 bulleit 95 rye 10l", "baileys irish cr 17% 100cl")

您可以通过使用获得两个部分

part1 <- sub("\\d?\\s(.*?)\\s\\d+.*", "\\1", x)
part2 <- sub("\\d?.*\\s.*(\\d+.*?)", "\\1", x)

part1
#[1] "smirnoff espresso twist"     "captain morgan black spiced" "bulleit"        
#[4] "baileysirish cr"  

part2
#[1] "10l"        "10l"        "95 rye 10l" "17% 100cl" 

其中part1忽略第一个数字并提取所有字符,直到x中出现下一个数字,而part2提取之后的所有内容。