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



我试图从向量中找到任何不包含连续元音的单词,我将其定义为[aeiou]。例如,我想要"阿拉斯加"或"密西西比",但不想要"乔治亚"或"夏威夷"。我知道{2,}指定了两个或多个东西,而[^...]不是什么东西。但我不知道如何在grep下组合它们。帮助

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

您几乎已经有了答案:

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

我只想在您从states中提取的内容中使用逻辑否定(如上所述),而不是试图编写更复杂的正则表达式。

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 运行此操作

最新更新