Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Java regexp Вернуть внутренее совпадение


Автор: headzero 26.1.2009, 22:26
Допустим есть масcив строк вида  "wewe ffefn 2346 effk  number:0938is wrong 23h2348b 3438 3486 235f535rfrefr". Mне с помощью регекспа нужно вернуть цифры но только из конкретного блока: между number и is wrong . Te я применяю  регулярное выражение  "number:([0-9]{4})is wrong". Проверка на калькуляторе(http://regexpres.narod.ru/calculator.html) показывает что (естественно) имеют место два совпадения: number:0938is wrong - внешнее совпадение и 0938 -  внутренние (которое в скобках). Код 
Код

        Pattern pa = Pattern.compile("number:([0-9]{4})is wrong");
        Matcher ma = pa.matcher("wewe ffefn 2346 effk  number:0938is wrong 23h2348b 3438 3486 235f535rfref");
        while (ma.find()) {
                System.out.println(ma.group());       
        }

возвращает только внешнее совпадение те   number:0938is wrong.  Вопрос: как в Java возвратить только внутреннее совпадение, то-есть цифры ?

Автор: ivg 26.1.2009, 23:27
Код

ma.group(1)

Автор: headzero 27.1.2009, 00:00
ivq,Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)