Код: Выделить всё
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
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