java.util.regex のパターン マッチャーを使用して一部の正規表現を機能させるのに問題があります。次の表現があります。
(?=^.{1,6}$)(?=^\d{1,5}(,\d{1,3})?$)
次の文字列に対して一致をテストします。
12345 (match OK)
123456 (no match)
123,12 (match OK)
次のサイトでテストしたところ、完全に機能しているようです。
http://rubular.com、わかりました
http://www.regextester.com/、わかりました
http://myregextester.com/index.php、わかりました
ただし、Javaプログラムの何かと一致するようには見えません。また、オンラインの Java 正規表現テスターでも同じ結果が得られます (一致なし)。
http://www.regexplanet.com/advanced/java/index.html 一致しない ???
これを Java で動作させることができない理由はわかりませんが、他の多くの正規表現エンジンでは動作するようです。
編集:これは機能しないコードでした。タイプミスを許してください、コードPCからスタックオーバーフローにコピー/貼り付けできません。
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));