Как найти конкретное слово из соответствующего выражения?

#python #regex #grouping

#python #регулярное выражение #группировка

Вопрос:

У меня есть строка ниже :

 /begin MEASUREMENT MSM_Struct.ANYNAME"Status ASC" 
  

и я хочу узнать ANYNAME из строки. Я попробовал следующее выражение:

 _regex_struct = re.compile(r'/begin MEASUREMENT MSM_Struct.[w] ')
  

Использование group(0) дает мне такой результат:

 /begin MEASUREMENT MSM_Struct.ANYNAME
  

Как получить ANYNAME на выходе?

Ответ №1:

Вам нужно экранировать . (поскольку вам нужно сопоставить буквенную точку, а не любой символ), заключить w в захватывающие круглые скобки (также отбросьте избыточный [...] раунд w ) и получить значение в m.group(1) .

 _regex_struct = re.compile(r'/begins MEASUREMENT MSM_Struct.(w )') 
m = _regex_struct.search(s)
if m:
    print(m.group(1))
  

Смотрите демонстрацию регулярных выражений и демонстрацию Python.

Обратите внимание, что я использовал s для сопоставления 1 или более пробелов вместо обычного пробела.