Задать вопрос
  • Как найти строки, в которых отсутствует строка?

    @wncm
    Во первых, ".*" - жадный поиск, то есть в него попадет и "onclick" и ">". Но даже если заменить ".*" на ".*?", то условие "(?!onclick)" всё равно будет "съедаться" точкой (иначе было бы, если вместо условия было выражение ".*?onclick").
    Я тоже не слишком разбираюсь в регулярных выражениях, но вот, вроде, рабочий вариант:
    <a ((?!onclick).)*?>
    Хотя выглядит криво как-то. Наверняка можно сделать изящнее.

    Вообще лучше убрать отрицание из регуляторки и переложить в код. В зависимости от языка, могут быть разные способы сделать это, но самый очевидный и рабочий везде - сначала найти все якоря, а после исключить якоря с "onclick". Что-то вроде:
    data.findall("<a .*?>").replace("<a .*?onclick.*?>", "")
    Ответ написан
    1 комментарий