R:查找不包含一组字符序列的单词

时间:2015-04-03 17:59:21

标签: regex r search

我试图从矢量中找到任何不包含连续元音的单词,我将其定义为[aeiou]。例如,我想要“阿拉斯加”或“密西西比”,而不是“格鲁吉亚”或“夏威夷”。我知道{2,}指定了两个或更多内容,而[^...]则没有。但我无法弄清楚如何在grep下将它们组合起来。帮助

states <- c('Alaska','Georgia','Hawaii','Mississippi')

2 个答案:

答案 0 :(得分:5)

你几乎已经有了这个答案:

states[!grepl("[aeiou]{2}", states)]
[1] "Alaska"      "Mississippi"

我只会在states(如上所述)中提取逻辑否定,而不是尝试编写更复杂的正则表达式。

答案 1 :(得分:1)

\b(?![a-z]*[aeiou]{2})[a-z]+\b

试试这个。看看演示。

https://regex101.com/r/sJ9gM7/45

对于r,它将是\\b(?![a-z]*[aeiou]{2})[a-z]+\\b

使用perl=True

运行此功能