Регулярное выражение - извлечение первых двухзначных значений из строки (изменяющийся формат) - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь извлечь две цифры из следующих примеров:

19-AB-4444
2-24-123-5564
09-7-1234
09-1234-ABC
1-11-1234-CCC

Результаты будут такими:

19
24
09
09
11

Я попытался сделать это, используя lookbehinds безуспешно.Обратите внимание, что всегда будет двухзначное число, и за этим значением всегда будут следовать некоторые символы и одно четырехзначное число.Не должно быть более одной двухзначной цифры и не более одной четырехзначной цифры.Мне нужен только 2-значный номер.

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Если Python действительно не ослабляет свою поддержку регулярных выражений, вы должны иметь возможность просто сравнивать с [0-9]{2}.Это будет соответствовать первому вхождению ровно 2 соседних цифр.

0 голосов
/ 11 декабря 2018

Чтобы извлечь первые 2 цифры независимо от границ слов в строке, вы можете использовать это регулярное выражение:

^(?:(?!\d\d).)*(\d\d)

и захватить захваченную группу № 1 в качестве целевой цели.

(?:(?!\d\d).)*будет соответствовать 0 или более любым символам, которые не имеют 2 цифр справа.

Демонстрация RegEx


Однако, если ваши данные отформатированы какВы показали в вопросе, то вы можете использовать более простое регулярное выражение:

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