【发布时间】:2015-01-05 10:51:43
【问题描述】:
我正在尝试为应具有以下条件的字符串构建正则表达式:
- 它必须至少包含一个元音。
- 它不能包含三个连续的元音或三个连续的辅音。
- 它不能包含两个连续出现的相同字母,“ee”或“oo”除外。
我无法为第二个和第三个条件构建正则表达式。
例如: 凉亭 - 接受, 苹果 - 不接受, 混合器 - 不接受, 对冲 - 不接受, 喂食 - 接受
提前致谢!
已编辑:
我的代码:
Pattern ptn = Pattern.compile("((.*[A-Za-z0-9]*)(.*[aeiou|AEIOU]+)(.*[@#$%]).*)(.*[^a]{3}.*)");
Matcher mtch = ptn.matcher("zoggax");
if (mtch.find()) {
return true;
}
else
return false;
【问题讨论】:
-
你能展示一下你到目前为止所做的尝试吗?我们可以对其进行扩充以帮助您。
-
我的建议..不要使用正则表达式..:P。正则表达式应该用于 匹配 条件,例如 x 前面有 3 个 W,然后是 2 个 y,然后是 1 个或多个 9
-
如果您可以创建代表您的规则的自动机,那么您可以构建正则表达式。
-
似乎很奇怪,它不能包含三个连续的辅音。很多话都行。例如“构造”。
-
@khelwood 更不用说三个连续的元音了。象声词以 4 结尾。