Мне нужно извлечь реальный номер вопроса в моем имени файла. Существует 2 шаблона:
- , если в имени файла нет начального номера, то номер, который мы читаем первым, является номером проблемы. Например
asdasd 213.pdf ---> 213
abcd123efg456.pdf ---> 123
однако, иногда в имени файла есть начальный номер, который является просто индексом файла, поэтому я должен сначала проигнорировать / пропустить его. Например,
123abcd 4567sdds.pdf ---> 4567, since 123 is ignored
890abcd 123efg456.pdf ---> 123, since 890 is ignored
Я хочу узнать, возможно ли написать только одно регулярное выражение для его реализации? В настоящее время мой солютон состоит из 2 шагов:
- , если есть начальный номер, удалите его
- найдите номер в оставшейся строке
или вКод Python
import re
reNumHeading = re.compile('^\d{1,}', re.IGNORECASE | re.VERBOSE) # to find leading number
reNum = re.compile('\d{1,}', re.IGNORECASE | re.VERBOSE) # to find number
lstTest = '''123abcd 4567sdds.pdf
asdasd 213.pdf
abcd 123efg456.pdf
890abcd 123efg456.pdf'''.split('\n')
for test in lstTest:
if reNumHeading.match(test):
span = reNumHeading.match(test).span()
stripTest = test[span[1]:]
else:
stripTest = test
result = reNum.findall(stripTest)
if result:
print(result[0])
спасибо