如何使用Java正则表达式验证几何点?

如何使用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

我试着这样-验证像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);
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())+“|”)
并给出一些“不起作用”的测试数据。在显示正确的输出之前,变量被覆盖。谢谢各位。