Еще один шаблон регулярных выражений Java - PullRequest
0 голосов
/ 13 декабря 2011

Может кто-нибудь помочь написать регулярное выражение для извлечения значения из строки.

вход

EX000 YUUOO 23 $90SDFFSFF SFDFSFD SFDSFS RMK NDN 002  SFDSFDF SFD FSDF SFSF 

Я хотел знать, как искать RMK NDN ... и извлечь значение 002 (максимум 4 цифры)?

спасибо

Ответы [ 3 ]

2 голосов
/ 13 декабря 2011

Если предположить, что входные данные всегда будут выглядеть точно так же, как в вашем примере, и только цифры 002 могут изменяться как последовательность из трех или четырех цифр, это будет работать:

public static String getDigits(String input) {
  Pattern p = Pattern.compile("RMK\\s+NDN\\s+(\\d{3,4})\\s+SFDSFDF");
  Matcher m = p.matcher(input);
  return (m.find()) ? m.group(1) : null;
}
0 голосов
/ 13 декабря 2011

Просто найдите то, что вы хотите, и введите следующие цифры в группу захвата

RMK\\sNDN\\s(\\d{1,4})\\s

См. здесь на Regexr

0 голосов
/ 13 декабря 2011

Попробуйте это:

".*RMK NDN (\\d{1,4}).*"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...