Мое регулярное выражение не работает - PullRequest
0 голосов
/ 05 марта 2011

Этот код не возвращает правильный результат:

Pattern p=Pattern.compile("^[y]{1,4}$|^[m]{1,4}$|^[d]{1,4}$");

String text1="yyyy";
String text2="mmm";

Matcher m=p.matcher(text);
boolean b=m.find();
System.out.println(String.valueOf(b));

m=p.matcher(text2);
b=m.find();
System.out.println(String.valueOf(b));

Строка System.out.println(String.valueOf(b)); печатает false Я хочу вернуть true. Кто-нибудь видит, что не так с кодом?

1 Ответ

4 голосов
/ 05 марта 2011

Более простое регулярное выражение может быть:

^(y{1,4}|m{1,4}|d{1,4})$

ОБНОВЛЕНИЕ1: Я также проверил ваше регулярное выражение, и это синтаксически правильно, но, возможно, движку Java-регулярного выражения это не нравится

ОБНОВЛЕНИЕ2: Я даже проверил ваш код Java, и он работает для меня только с одним исключением, что в первой части это text1 вместо text того, что вы ввели.

Он выводит true для меня в моей JVM, поэтому проблема, вероятно, не в вашем регулярном выражении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...