Найти в Дзене
Записки Одмена

Regexp. Регулярное выражение с match и exclude условием одновременно.

Всех категорически приветствую!
На просторах интернета я не находил готовый regexp, который бы описывал совпадение по regexp выражению при одновременном условии, что необходимо исключить другое regexp выражение. Regexp match and exception condition at the same time. Совпадение и не совпадение регулярного выражения одновременно. О чем речь. Предположим нам необходимо найти слово haha, но только в тех строчках, где нет фразы hede. Regexp. Оставляю ссылку на проверку https://regex101.com/r/46yoOG/2 Я использую: Функция. Можем написать небольшую функцию, которая бы выполняла это, для примера на groovy. https://groovyconsole.appspot.com/script/4911629342867456
Оглавление

Всех категорически приветствую!

На просторах интернета я не находил готовый regexp, который бы описывал совпадение по regexp выражению при одновременном условии, что необходимо исключить другое regexp выражение. Regexp match and exception condition at the same time. Совпадение и не совпадение регулярного выражения одновременно.

О чем речь.

Предположим нам необходимо найти слово haha, но только в тех строчках, где нет фразы hede.

Regexp.

Оставляю ссылку на проверку https://regex101.com/r/46yoOG/2

regexp
regexp

Я использую:

  • (?:(?<!hede)) - Non-capturing group Negative Lookbehind, это выражение, которое не должно стоять перед нашим искомым выражением haha
  • (?=.*haha.*) - Positive Lookahead, выражение которое будет искать haha c любыми символами до и после слова
  • (?:(?!hede).)* - Non-capturing group Negative Lookahead, это выражение, которое не должно стоять после нашего искомого haha

Функция.

Можем написать небольшую функцию, которая бы выполняла это, для примера на groovy.

https://groovyconsole.appspot.com/script/4911629342867456

пример функции
пример функции