Regex R:查找集合中不包含字符序列的单词
我试图从向量中找到任何不包含连续元音的单词,我将其定义为Regex R:查找集合中不包含字符序列的单词,regex,r,search,Regex,R,Search,我试图从向量中找到任何不包含连续元音的单词,我将其定义为[aeiou]。例如,我想要“阿拉斯加”或“密西西比”,而不是“乔治亚州”或“夏威夷”。我知道{2,}指定了两个或更多的东西,而[^…]不是什么东西。但我不知道如何在grep下组合它们。帮忙 状态 试试这个。看演示 对于r它将是\\b(?![a-z]*[aeiou]{2})[a-z]+\\b 使用perl=True运行此命令,您几乎已经找到了答案: states[!grepl("[aeiou]{2}", states)] [1] "Ala
[aeiou]
。例如,我想要“阿拉斯加”或“密西西比”,而不是“乔治亚州”或“夏威夷”。我知道{2,}
指定了两个或更多的东西,而[^…]
不是什么东西。但我不知道如何在grep下组合它们。帮忙
状态
试试这个。看演示
对于r
它将是\\b(?![a-z]*[aeiou]{2})[a-z]+\\b
使用perl=True
运行此命令,您几乎已经找到了答案:
states[!grepl("[aeiou]{2}", states)]
[1] "Alaska" "Mississippi"
我会在从状态提取时使用逻辑否定(如上所述),而不是尝试编写更复杂的正则表达式。我只是尝试在Rgrepl(\\b(?![a-z]*[aeiou]{2})[a-z]+\\b],states,perl=TRUE)中运行它
并且对于OP提供的状态
向量的所有元素,结果都是FALSE
。如果没有perl=TRUE
,则它不是有效的R正则表达式。而不是perl=TRUE
<代码>'True'=TRUE
还认为尾部模式“[a-z]+”可能没有帮助,也可能有害。即使使用perl=TRUE
,它仍然失败。
states[!grepl("[aeiou]{2}", states)]
[1] "Alaska" "Mississippi"