Regex для строк, содержащих одну строку и не содержащих другую строку

У меня есть следующее регулярное выражение, чтобы соответствовать всем строкам, содержащимconsole.log() или жеalert() Функция в любом файле JavaScript, открытом в редакторе, поддерживающем PCRE.

^.*\b(console\.log|alert)\b.*$

Но я сталкиваюсь со многими файлами, содержащимиwindow.alert() линии для предупреждения важных сообщений, я не хочу удалять / заменять их.

Таким образом, вопрос, как сопоставить регулярное выражение (регулярное выражение одной строки без необходимости часто запускать) все строки, содержащиеconsole.log() а такжеalert() но не содержит словаwindow, Также, как избежать круглых скобок (круглых скобок), которые невозможно избежать\сделать их частью строкового литерала?

Я попробовал следующее регулярное выражение, но тщетно:

^.*\b(console\.log|alert)((?!window).)*\b.*$

Ответы на вопрос(1)

Ваш ответ на вопрос