Поиск строки в формате TEXT-###, например, SFS-444 внутри другой строки

#python #string #subset

#python #строка #подмножество

Вопрос:

В значительной степени, как указано в заявлении, я пытаюсь выяснить, как найти текст, который следует за этим форматом TEXT-### внутри другой строки. Однако может быть много слов или несколько чисел, таких как,

 FRS-44215
SLMP-44
AG-1
 

Итак, например, у меня есть этот текст.

 "Lorem ipsum dolor sit amet, adversarium suscipiantur 
has ea, duo at alia assum, eu ius hinc 
aliquip percipitur SGF-7852 Nec ne 
nisl duis volutpat"
 

Код будет выбирать SGF-7852

Ответ №1:

Используйте регулярное выражение, чтобы определить шаблон, который вы ищете, а затем выполните поиск по нему в строке.

 >>> s = '''"Lorem ipsum dolor sit amet, adversarium suscipiantur 
... has ea, duo at alia assum, eu ius hinc 
... aliquip percipitur SGF-7852 Nec ne 
... nisl duis volutpat"'''
>>> e = r'[A-Z] -d '
>>> import re
>>> re.findall(e, s)
['SGF-7852']
 

Здесь закономерность такова:

  • [A-Z] (одна или несколько заглавных букв)
  • - за которым следует тире
  • d за которым следует одно или несколько чисел

Комментарии:

1. Вау, это потрясающе, делает именно то, что мне нужно, спасибо!