如何匹配包含每个元音的单词至少一次?
答案 0 :(得分:4)
这取决于你对“元音”的意思 - 就此而言,你所说的“字”也是 - 但正常的方式是这样的:
(?xsi)
(?= .* a)
(?= .* e)
(?= .* i)
(?= .* o)
(?= .* u)
(?= .* y)
但你不想这样做。您希望将逻辑连接放在编程语言中,而不是正则表达式,这会导致类似这样的事情(忽略套管问题):
/a/ && /e/ && /i/ && /o/ && /u/ && /y/
请注意,整个“元音”问题非常荒谬,因为任何连续体都可以像元音一样,即使它看起来不像一个元音。这意味着一些看起来不像元音的字母是。另外,有时字母看起来像元音但不是。
例如, s 是 psst , l 中的第二个 l ,< acre 中的em> r , nth 中的 n 都充当元音。另外还有来自威尔士语的着名单词 cwm ,其中 w 是一个元音。
此外, Mike 中的 e 不是元音,而 i 有双元音(两个元音)融合)。
此外,虽然 sky 中的 y 是元音,但黄色中的 y 是不是元音。
你必须弄清楚你认为有多少元音,如谎言或发言,甚至队列
最后,如果你有变音符号,你必须决定是否将它们统计为单独的。 e ,é,è和ê只有一个元音,或四个?
答案 1 :(得分:2)
这个怎么样
\s* (?= \S* a) (?= \S* e) (?= \S* i) (?= \S* o) (?= \S* u) (?= \S* y) (\S*)