Allegro75
@Allegro75
Учусь веб-разработке

Как найти последовательность символов при условиях описанных ниже?

Как найти такую последовательность символов needle, перед которой НЕТ последовательности символов baffle, после которой (после baffle) может быть любое число пробельных символов?
Т.е., говоря грубее, такой needle, перед которым нет baffle (c пробелами или без).
Можно даже baffle, после к-рого есть как минимум один пробел.
В любом случае VS Code в режиме поиска по папке (мне нужен поиск по папке), по проекту в целом (а не по отдельному файлу) отказывается считать корректными выражения типа
(?<!baffle\s*)needle
или
(?<!baffle\s+)needle
Говорит, что недопустима звёздочка или плюс внутри ретроспективной проверки.
Что интересно, в режиме поиска по файлу такое выражение кушается VS Cod'ом без проблем:
5f78d46821d37925816204.jpeg
Так же "не ест" эти выражения https://regex101.com/

Текст для экспериментирования (тут есть четыре правильных needl'а):
baffle needle buffalo
baffle needlebaffle fine
baffle
needle baffleneedle baffle

fine
baffle buffalo
needle buffalo needle
baffle needle
needle baffle fine
needlefine
  • Вопрос задан
  • 37 просмотров
Решения вопроса 1
dollar
@dollar
На чёткий вопрос - чёткий ответ.
Короткий вариант "на авось" (работает на вашем примере):
([^e\s]|[^l]e|[^f]le)\s*(needle)

Полный вариант под формулировку вопроса:
([^e\s]|[^l]e|[^f]le|[^f]fle|[^a]ffle|[^b]affle)\s*(needle)

https://regex101.com/r/hxapI9/1

Не знаю, захватывает ли у вас перевод строки, и нужно ли вам это, но на всякий случай:
([^e\s]|[^l]e|[^f]le|[^f]fle|[^a]ffle|[^b]affle)[\s\r\n]*(needle)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
23 окт. 2020, в 12:09
1500 руб./в час
23 окт. 2020, в 12:01
42000 руб./за проект
23 окт. 2020, в 11:53
240000 руб./за проект