#regex
#регулярное выражение
Вопрос:
Я хочу выполнить поиск по регулярному выражению, который даст мне совпадение двух слов с любым переменным количеством пробелов (табуляция, пробел, новая строка и т.д.) Или символов между ними. Например:
Цель: класс, конструктор
Должно совпадать:
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:
Да, вы можете использовать это регулярное выражение, которое соответствует тому, что вы хотите.
bclassb(?:(?!bclassb)[wW])*bconstructorb
Объяснение этого регулярного выражения:
bclassb
— Совпадаетclass
буквально как целое слово и не совпадает частично в более крупном тексте(?:(?!bclassb)[wW])*
— Это сопоставляет любой ввод ноль или более раз жадным способом, за исключениемclass
того, что это целое слово, также известное как жадный маркерbconstructorb
— Наконец, это соответствует литералуconstructor
как целому слову