Регулярное выражение для обнаружения произвольных буквенно-цифровых символов (с возможными специальными символами между Python

Программы на Python
Anonymous
Регулярное выражение для обнаружения произвольных буквенно-цифровых символов (с возможными специальными символами между

Сообщение Anonymous »

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

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

text == """My name is Maximus Awesomeus and my phone number is +13204919920, my sort code is 01-42-42 and my ID is ZUI8012IOI1. Here is a random string that shouldn't be caught: UHAHS-IQOEQI but here is a random string that should be caught IAIUH124242JOOO-1213IH/131IOIHIO"""
При поиске по регулярным выражениям я хотел бы игнорировать все слова и в основном находить все, что может быть серийным номером, номером или чем-то в этом роде. В данном случае это будет:

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

+13204919920, 01-42-42, ZUI8012IOI1, IAIUH124242JOOO-1213IH/131IOIHIO
Я придумал такой шаблон:

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

\b(?=.*\d)[A-Za-z0-9._@#/-+]+\b 
Но просмотр вперед просматривает всю строку, и, таким образом, улавливаются и чисто алфавитные слова, если в остальной части строки есть хотя бы одно число. Я не знаю, как это обойти: регулярное выражение никогда не было сильной стороной.

Подробнее здесь: https://stackoverflow.com/questions/790 ... racters-in

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