Допустим есть мас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 возвратить только внутреннее совпадение, то-есть цифры ? |