Сопоставьте конец строки, если строка содержит определенный текст

#regex

Вопрос:

Я пытаюсь извлечь слова из конца строки, если строка содержит определенную фразу, используя регулярное выражение.
Например, у меня есть эти строки:

 Web Mode .............................. Enable
Secure Web Mode.............................Enable
AP Fallback ................................ Enable
 

И я хотел бы найти строки, начинающиеся, "Web Mode" например, с, и если строка начинается с "Web Mode" , я хотел бы сопоставить слово в конце строки, которое в данном случае есть "Enable" .

Я смог сопоставить начало строки примерно так:

 ^Web Mode.*
 

но я застрял на этом этапе, есть какие-нибудь идеи?

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

1.Вот так? ^Web Mode . (S )$ regex101.com/r/5UxDR8/1

2. @Thefourthbird: Опубликуйте это как ответ

Ответ №1:

Для примера данных вы можете использовать группу захвата для сопоставления Enable

 ^Web Mode .  (S )$
 

Шаблон совпадает:

  • ^ Начало строки
  • Web Mode Совпадение буквально сопровождается пробелом
  • . Сопоставьте 1 или более вхождений точки
  • (S ) Сопоставьте символ пробела с 1 символами без пробелов в группе 1
  • $ Конец строки

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

Ответ №2:

Воспользуйся

 ^Web Mode.*bKw $
 

См.Доказательство регулярного выражения.

объяснение

 --------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  Web Mode                 'Web Mode'
--------------------------------------------------------------------------------
  .*                       any character except n (0 or more times
                           (matching the most amount possible))
--------------------------------------------------------------------------------
  b                       the boundary between a word char (w) and
                           something that is not a word char
--------------------------------------------------------------------------------
  K                       match reset operator
--------------------------------------------------------------------------------
  w                       word characters (a-z, A-Z, 0-9, _) (1 or
                           more times (matching the most amount
                           possible))
--------------------------------------------------------------------------------
  $                        before an optional n, and the end of the
                           string