Регулярное выражение - поиск строки с использованием 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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