За последние 24 часа нас посетили 22176 программистов и 993 робота. Сейчас ищут 714 программистов ...

Найти все, кроме выражения. Инверсия выражения

Тема в разделе "Регулярные выражения", создана пользователем Voprosovich, 18 окт 2018.

  1. Voprosovich

    Voprosovich Новичок

    С нами с:
    26 сен 2018
    Сообщения:
    21
    Симпатии:
    0
    Найти в XML все: КодТовара="153" где цифр в кавычках от 1 до 6.
    XML:
    тексты, символы, теги, числа и тд КодТовара="64" тексты, символы, теги, числа и тд
    тексты, символы и тд КодТовара="2534" тексты, символы, теги, числа и тд
    ...
    текст, символы и тд нужно отсеять вообще любые, в тч очень похожие на нужный мне КодТовара="153", например, отсеять Товар="153", <group Группа="548"> и тд

    Придумал:
    КодТовара="\d{1,6}"

    Но как инвертировать? При поиске [^(КодТовара="\d{1,6}")] с заменой на пустоту все входящие буквы в "кодтовара" не отсеиваются и получается после замены на ничего:
    ...КодТовара="1850"КодРодт="252"аовада="т"Роаа="1000"аКод="1400"ааТовар...
    Как сделать чтобы "КодТовара" не разбивался внутри [] на буквы а искал "КодТовара" целиком?

    ПС, нужно для notepad++, а не php.
     
    #1 Voprosovich, 18 окт 2018
    Последнее редактирование: 18 окт 2018
  2. Voprosovich

    Voprosovich Новичок

    С нами с:
    26 сен 2018
    Сообщения:
    21
    Симпатии:
    0
    Подскажите, пожалуйста, как "кодтовара=" искать внутри группы [] целиком словом, а не просто набором букв, иначе находятся:
    upload_2018-10-18_14-27-40.png
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.553
    Симпатии:
    631
    preg_match_all() и инвертировать не надо
     
    Voprosovich нравится это.
  4. Voprosovich

    Voprosovich Новичок

    С нами с:
    26 сен 2018
    Сообщения:
    21
    Симпатии:
    0
    Спасибо. а силами самих регулярок никак нельзя? Прочел несколько статей, но не смог найти инф-ю. Неужели нет способа внутри [] делать выборку не посимвольно?
     
  5. Voprosovich

    Voprosovich Новичок

    С нами с:
    26 сен 2018
    Сообщения:
    21
    Симпатии:
    0
    Может другим путем. Подскажите, как заставить выражение (?!(КодТовара="\d{1,6}")).*? исключать не одну букву "К" а целиком КодТовара="55175"
    upload_2018-10-19_10-35-28.png
     
  6. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    Код (Text):
    1. /КодТовара="[0-9]+"/gi
    так не работает что ли?
     
    Voprosovich нравится это.
  7. Voprosovich

    Voprosovich Новичок

    С нами с:
    26 сен 2018
    Сообщения:
    21
    Симпатии:
    0
    Работает, и моя 1-я тоже ищет и 2я и ваша. Найти не проблема. Как найти инверсию? Выделить обратное найденному. Мои недалекие попытки инвертировать могут найти только 1-ю букву из нужного))) Уверен, будь больше мозгов, что-то поменяв местами решил бы задачу.