【发布时间】:2017-01-03 21:55:09
【问题描述】:
我想知道如何匹配包含 2 个或更多 2 个元音字母序列的单词(使用 javascript 版本的正则表达式)(例如 visionproof , steamier, preequip)。
我现在正在学习正则表达式,这就是我目前所掌握的(它只匹配包含 2 个元音字母序列的单词),也是我坚持的地方:
【问题讨论】:
标签: javascript regex
我想知道如何匹配包含 2 个或更多 2 个元音字母序列的单词(使用 javascript 版本的正则表达式)(例如 visionproof , steamier, preequip)。
我现在正在学习正则表达式,这就是我目前所掌握的(它只匹配包含 2 个元音字母序列的单词),也是我坚持的地方:
【问题讨论】:
标签: javascript regex
每当我想测试不同的正则表达式时,我都会使用http://regex101.com。这是我想出的一个,我相信它可以满足您的需求。
var text = "visionproof vision proof threevowelswouldworktoo queued",
regex = /\w*[aeiou]{2}\w*[aeiou]{2}\w*/ig;
console.log(text.match(regex));
\w 匹配单词字符。因此,这匹配 0 个或多个单词字符后跟 2 个元音,然后是 0 个或多个单词字符,然后是 2 个元音,然后是 0 个或多个单词字符。我的例子是here。
【讨论】:
【讨论】:
{2,}
(?:[aeiou]{2,}) 部分 - 两次,因为您想不止一次地抓住它/(\w*(?:[aeiou]{2,})\w*(?:[aeiou]{2,})\w*)/g
re = /(\w*(?:[aeiou]{2,})\w*(?:[aeiou]{2,})\w*)/g
str = 'words that contains 2 or more letters sequesnces and some triiiiple visionproof, steamier, preequip'
console.log(str.match(re))
这里是 regex101 的链接:
https://regex101.com/r/OtsdRA/2
如果您希望单词
sssiiiisss不匹配(因为您没有两个单独的元音块),您应该在两个元音块之间使用\w+:/(\w*(?:[aeiou]{2})\w+(?:[aeiou]{2})\w*)/g
【讨论】:
(?:、(和)的实例,它仍然会产生相同的输出:re = /\w*[aeiou]{2,}\w*[aeiou]{2,}\w*/g
下面的正则表达式可用于获取 2 个或更多序列的 2 个连续元音
(\w*[aeiou]{2}\w*){2,}
{2} 表示 2 个连续的元音 和 {2,} 用于 2 个或更多序列
【讨论】: