Справка по регулярному выражению - извлечь значение из строки, игнорируя предыдущее содержимое - PullRequest
0 голосов
/ 12 декабря 2011

Может кто-нибудь помочь мне написать регулярное выражение Java для получения значения из следующей строки, пожалуйста?

XX0001  15NOV XXX SELECTED RAX                                       AXXXXX DXXXXXXXXX           REF NBR  002            SSSS 

Я хотел извлечь значение 002. Все строки / символы до 002 имеют фиксированную длину и дополняются пробелом (если требуется). может иметь любые строковые / числовые / специальные отображаемые символы.

Я ищу что-то вроде ... получить 002 из этой позиции, игнорируя все, что раньше.

Ответы [ 4 ]

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

на Java

string.substring(56,59);
0 голосов
/ 12 декабря 2011

Какой язык?

Если JavaScript:

myCode=myString.substring(56,58);

или

myCode=myString.substr(56,3);

Если PHP:

$myCode=substr($myString,56,3);

Этот более простой вариант предпочтительнее регулярного выражения, потому что он быстрее. Вы можете использовать это, потому что вы работаете со строками фиксированной длины.

РЕДАКТИРОВАТЬ: Только что увидел ваше редактирование ссылаясь на Java. Так в Java:

String myCode = myString.substring(56,59);
0 голосов
/ 12 декабря 2011

Вам не нужно регулярное выражение, чтобы сделать это. Просто используйте метод String substring:

String myString = originalString.substring(106,109); // myString = "002"

106 - это начальный индекс, а 109 - конечный индекс - 1. Чтобы просто получить первое, просто возьмите длину исходной строки непосредственно перед числом, которое вы хотите получить, например:

System.out.println("XX0001  15NOV XXX SELECTED RAX                                       AXXXXX DXXXXXXXXX           REF NBR  ".length());
0 голосов
/ 12 декабря 2011

Предполагая, что вам нужен последний набор цифр перед концом строки, вы можете сделать что-то вроде этого:

^.*\\d{3}\\s+.{4}$

Это должно дать Regex Engine команду начинать сопоставление с начала строки, сопоставлять любые символы, а затем, с конца, сопоставлять 3 числа, пробел и любые 4 символа.

Кроме того, если у вас фиксированные размеры и длины, вы, скорее всего, можете использовать метод .substring , он менее сложный.

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