Как сопоставить два слова, которые разделены любым переменным количеством символов и пробелов с помощью регулярных выражений? - PullRequest
0 голосов
/ 01 апреля 2019

Я ищу поиск по регулярному выражению, который даст мне совпадение двух слов с любым переменным количеством пробелов (табуляция, пробел, новая строка и т. Д.) Или символов между ними.Например:

Цель: класс, конструктор

Должно совпадать:

class myComponent {
  constructor() {
  }
}

НЕ должно совпадать:

class myComponent {
  render() {
  }
}

Также должно совпадать:

class myComponent {
  // imagine a bunch of code here that comes before the constructor
  // with many different lines and many random characters
  constructor() {
  }
}

1 Ответ

1 голос
/ 01 апреля 2019

Да, вы можете использовать это регулярное выражение, которое соответствует вашему желанию.

\bclass\b(?:(?!\bclass\b)[\w\W])*\bconstructor\b

Объяснение для этого регулярного выражения:

  • \bclass\b - Совпадения class буквально как целое слово и не совпадает частично в большем тексте
  • (?:(?!\bclass\b)[\w\W])* - Это соответствует любому вводу ноль или более раз жадным образом, за исключением class как целого слова, иначе говоря закаленный жадныйтокен
  • \bconstructor\b - Наконец, это соответствует буквальному constructor как целому слову

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...