Оператор И в регулярных выражениях

Я некоторое время искал, как использовать логическую операцию И в регулярных выражениях в Java, и не удалось.
Я попытался сделать то, что рекомендовано в аналогичной теме:

(?=match this expression)(?=match this too)(?=oh, and this)

, и это не работает. Даже простые примеры с? = Возвращает false:

String b = "aaadcd";
System.out.println(b.matches("(?=aa.*)"));

Также я читал, что (выражение X) (выражение Y) должно работать как X AND Y , но работает как X ИЛИ Y .
Что я делаю не так?

Добавлено: Пытался добавить в конец . * . По-прежнему не работает.
Например:

[2-9]? [0-9] {5,9} || 1 [2-9] [0-9] {1,2} || 120 [0-9] {1 , 1} || 119 [0-9] = X - вернуть false, если число меньше 1190

[0-9] {1,3} || 1 [0-0] [0-9] {1,2} || 11 [0-8] [0-9] {1, 1} || 119 [0-2] = Y - вернуть false, если число больше 1992.

String a = "1189";
a.matches(X) // return false
a.mathes(Y)  // return true
a.matches((?=X)(?=Y).*) // return true, but should return false.

Добавлено: Да, мое регулярное выражение неверно. Виноват. Проблема решена. Спасибо всем!

7
задан Mikhail 31 May 2011 в 12:05
поделиться