如何匹配包含每个元音的单词至少一次?

时间:2012-04-25 21:31:54

标签: regex

如何匹配包含每个元音的单词至少一次?

2 个答案:

答案 0 :(得分:4)

这取决于你对“元音”的意思 - 就此而言,你所说的“字”也是 - 但正常的方式是这样的:

(?xsi)
(?= .* a)
(?= .* e)
(?= .* i)
(?= .* o)
(?= .* u)
(?= .* y)

但你不想这样做。您希望将逻辑连接放在编程语言中,而不是正则表达式,这会导致类似这样的事情(忽略套管问题):

/a/ && /e/ && /i/ && /o/ && /u/ && /y/

什么是元音?

请注意,整个“元音”问题非常荒谬,因为任何连续体都可以像元音一样,即使它看起来不像一个元音。这意味着一些看起来不像元音的字母是。另外,有时字母看起来像元音但不是。

  1. 例如, s psst l 中的第二个 l ,< acre 中的em> r , nth 中的 n 都充当元音。另外还有来自威尔士语的着名单词 cwm ,其中 w 是一个元音。

  2. 此外, Mike 中的 e 不是元音,而 i 有双元音(两个元音)融合)。

  3. 此外,虽然 sky 中的 y 是元音,但黄色中的 y 是不是元音。

  4. 你必须弄清楚你认为有多少元音,如谎言发言,甚至队列

  5. 最后,如果你有变音符号,你必须决定是否将它们统计为单独的。 e éèê只有一个元音,或四个?

答案 1 :(得分:2)

这个怎么样

\s* (?= \S* a)  (?= \S* e)  (?= \S* i)  (?= \S* o)  (?= \S* u)  (?= \S* y) (\S*)