如何使用Java正则表达式验证几何点?
我试着这样-验证像x,y这样的点 [0-9]{1,}[0-9]{1,} 它不起作用 更新: 我一定是做错了什么。这是一个简单的控制台输入,通过Scanner(System.in)-使用Scanner#nextLine返回字符串如何使用Java正则表达式验证几何点?,java,regex,Java,Regex,我试着这样-验证像x,y这样的点 [0-9]{1,}[0-9]{1,} 它不起作用 更新: 我一定是做错了什么。这是一个简单的控制台输入,通过Scanner(System.in)-使用Scanner#nextLine返回字符串 private static String REGEX_PATTERN = "[0-9]{1,}[,][0-9]{1,}"; private static Pattern regExPattern = Pattern.compile(REGEX_PATTERN); pri
private static String REGEX_PATTERN = "[0-9]{1,}[,][0-9]{1,}";
private static Pattern regExPattern = Pattern.compile(REGEX_PATTERN);
private static Matcher regExMatcher;
regExMatcher = regExPattern.matcher(getStringValue());
isValid = regExMatcher.matches();
我也试过斯维斯特的解决方案。没用。我想我找到了你要找的东西: 如果您尝试了“4,5”,但它不起作用,那么其他方面就错了
tjwebb@latitude:~$ rhino
Rhino 1.7 release 2 2010 09 15
js> /[0-9]{1,},[0-9]{1,}/.test("4,5");
true
对我来说,“4,5”确实匹配,所以您一定没有正确使用该正则表达式。在我看来这是正确的。你用什么语言
-tjw正在工作:
public class Test {
private static String REGEX_PATTERN = "[0-9]{1,}[,][0-9]{1,}";
private static Pattern regExPattern = Pattern.compile(REGEX_PATTERN);
private static Matcher regExMatcher;
public static void main(String[] args) {
test("1,3"); // true
test("123"); // false
test("1-3"); // false
test("123,456"); // true
test("123, 56"); // false
test(" 23,456"); // false
test("123,456\n"); // false
}
private static void test(String string) {
regExMatcher = regExPattern.matcher(string);
boolean isValid = regExMatcher.matches();
System.out.printf("\"%s\" - %s%n", string, isValid);
}
}
可能getStringValue()
正在返回一些额外的字符,如空格或换行符。要忽略空格,请尝试使用
REGEX_PATTERN = "\\s*\\d+\\s*,\\s*\\d+\\s*";
在寻求正则表达式方面的帮助时,最好给出一些应该匹配的输入示例,或者一些不应该匹配的输入示例。一般来说,不要只说“它不起作用”,解释一下它是如何不起作用的,以及你预期会发生什么。你真的试过
x,y
?你的正则表达式匹配number,number
字符串。“It not working”听起来不像是一条有效的错误消息我用4,5尝试过-It not working意思是-正则表达式与我的输入不匹配。是的。请尝试调试器或System.out.println(“|”+getStringValue())+“|”)
并给出一些“不起作用”的测试数据。在显示正确的输出之前,变量被覆盖。谢谢各位。