Регулярное выражение - поиск строки с использованием regex и извлечение совпадения из исходной строкиJAVA

Программисты JAVA общаются здесь
Anonymous
Регулярное выражение - поиск строки с использованием regex и извлечение совпадения из исходной строки

Сообщение Anonymous »

Давайте скажем, у меня есть следующая строка. < /p>

Код: Выделить всё

Lorem ipsum XYZ1234-123456-12 lorem ipsum
< /code>

Я хочу искать строку для любого возникновения строки, которая имеет шаблон xxxdddddddddddddd < /code> (то есть 3 символа, за которым следует 12 цифр, игнорируя любые не альфаномерные символы) < /p>

, чтобы достичь этого, что я делаю что -то вроде < /p>

, чтобы достичь этого, что -то вроде < /p>

.String incomingId = "Lorem ipsum XYZ1234-123456-12 lorem ipsum"

private final static Pattern NONCHARACTER = Pattern.compile("[^a-zA-Z0-9]");
String removedNonChars = NONCHARACTER.matcher(incomingId ).replaceAll("")      //returns LoremipsumXYZ123412345612loremipsum
< /code>

Я затем запускаю еще одну рефлексию для поиска последовательности, которую я хочу (т.е. xxxddddddddddddd < /code>) < /p>

private final static Pattern IDENTIFIERPATTERN = Pattern.compile("([a-zA-Z]{3,})(\d{3})(\d{6})(\d{2})");
String extractedString = IDENTIFIERPATTERN.matcher(removedNonChars)     //returns a match on XYZ123412345612
Once i get the string that has the format i am looking for (i.e. XYZ123412345612), i want to extract that string from the original non modified string (i.e. the value XYZ1234-123456-12)

Note - The hyphens are just an Пример, нехарактером может быть любой не буквенно -цифровой символ - примеры: < /p>

Lorem ipsum XYZ1234-123456-12 lorem ipsum
Lorem ipsum XYZ123412345612 lorem ipsum
Lorem ipsum XYZ1234 123456 12 lorem ipsum
Lorem ipsum XYZ1234!123456#12 lorem ipsum
Lorem ipsum XYZ1234--123456#12 lorem ipsum
< /code>

В основном то, что я делаю, это ищет строку для идентификаторов. Идентификаторы обычно имеют определенный формат, но иногда люди не используют правила для идентификатора, поэтому я ищу без характера в строке. После того, как я извлекал строку без нехарактеров, я хочу извлечь исходную строку с помощью нехарактеров. < /p>

Как я могу извлечь строку из исходной строки, используя строку, которая была возвращена в качестве совпадения в начальном поиске. < /p>

edit < /h2>

Разделители всегда не альфанокосимых. т.е. не цифра, а не персонаж (то есть только специальные символы, такие как -,#$ $ "(! __ £ ($ & £^", и включая символ «пространство»). < /p>

Заранее. < /p>

Подробнее здесь: https://stackoverflow.com/questions/216 ... -match-fro

Вернуться в «JAVA»