Непонятно из вашего комментария к ответу Алекса. Является ли запись действительной, если между WR
и 11 цифрами есть пробел?
Надеюсь, один из этих примеров поможет. В противном случае добавьте другие варианты и ожидаемые результаты к своему вопросу, и вы получите ответы, которые прямо к делу.
>>> import re
>>> re.findall(r'(WR\d{11})(?:\D|$)', 'file No.WR79050107006 from files')
['WR79050107006']
>>> re.findall(r'(WR)(\d{11})(?:\D|$)', 'file No.WR79050107006 from files')
[('WR', '79050107006')]
Пробел между WR и 11 цифрами
>>> re.findall(r'(WR)(\d{11})(?:\D|$)', 'file No.WR 79050107006 from files')
[]
>>> re.findall(r'(WR)\s*(\d{11})(?:\D|$)', 'file No.WR 79050107006 from files')
[('WR', '79050107006')]
>>>
Что-нибудь между WR и 11 цифрами
>>> re.findall(r'(WR).*(\d{11})(?:\D|$)', 'file No.WR!@#$%79050107006 from files')
[('WR', '79050107006')]