【发布时间】:2012-11-27 13:12:07
【问题描述】:
在这里,我想为仅包含 0 到 6 个数字的字符串创建 regx。 这个字符串包含 0 到 6 个这样的数字。
Example-1 : "010002030405" Valid String
这个字符串只包含 o 到 6 个数字,所以在这里我使用了这个 regx "[0-6]*"。但是我还想在这个字符串中验证一件事,我希望 0 只在奇数位置 1-6 永远不会在奇数位置。 0 可以放在奇数和偶数位置,但 1-6 只能放在偶数位置。
这里我给了你一些有效和无效的字符串示例
Valid : 000102000004
invalid : 0023015006
我在这里使用了此代码请建议我或告诉我我必须在我的 regx 中更改什么以满足以下验证
1) String contains only 0-6 numbers nothing else.
2) 1-6 would be only even positions only they would not be at odd position ever, 0 would be odd and even position.
代码:
public boolean isOptions(String input) {
String patternString = "[0-6]*";
Pattern pattern = Pattern.compile(patternString);
return pattern.matcher(input).matches();
}
【问题讨论】:
-
"我只想要 0 在奇数位置 1-6 永远不会在奇数位置。0 可以放在奇数和偶数两者上" 你只想要 0 是不是有点矛盾奇数位置,0 可以同时放在奇数和偶数位置?
-
你真的要在这里使用正则表达式吗?我认为简单的循环和检查在这里应该更容易。
-
stackoverflow.com/questions/691519/… 这将有助于实现您尝试构建的逻辑
-
@Shreya:那不也匹配“022222222”吗?
-
@Hyperboreus 对不起,我的错。我希望偶数和奇数都为 0,仅偶数位置为 1-6。
标签: java android regex string validation