我在使用java.util.regex的模式匹配器时遇到了一些正则表达式无法正常工作的问题。我有以下表达式:
(?=^.{1,6}$)(?=^\d{1,5}(,\d{1,3})?$)
我会对以下字符串进行测试匹配:
12345 (match OK)
123456 (no match)
123,12 (match OK)
当我在以下网站上测试时,它似乎完美地工作:
http://www.regextester.com/,好的
http://myregextester.com/index.php,好的
然而,在我的Java程序中似乎无法匹配任何内容。此外,一个在线的Java正则表达式测试器也给出了相同的结果(没有匹配项):
http://www.regexplanet.com/advanced/java/index.html没有匹配项???
我不知道为什么我无法使它在Java中工作,但它似乎在许多其他正则表达式引擎中可以。
编辑:这是不起作用的代码。请原谅我的错别字,我无法从我的代码电脑复制/粘贴到stackoverflow。
String inputStr = "12345";
String pattern = "(?=^.{1,6}$)(?=^\\d{1,5}(,\\d{1,3})?$)";
Pattern regexp = Pattern.compile(pattern);
System.out.println("Matches? "+regexp.matcher(inputStr).matches());
System.out.println(inputStr.matches(pattern));