Регулярные выражения в функциях поиск-замены

Регулярные выражения можно использовать только в:

Для включения регулярных выражений в функциях поиск-замены необходимо добавить параметр re: в начало нужных строк. Например:

ВАЗ|автоваз
В.*З|автоваз
re:В.*З|автоваз

Во второй строке регулярное выражение .* работать не будет, так как перед ней нет параметра re:. Во второй строке будет искаться В.*З и заменяться на автоваз. В третьей строке будут искаться все выражения с В в начале и с З на конце. Например: ВАЗ, ВОЗ, Волшебный таЗ. Регулярные выражения работают как в общей функции поиск-замены, так и в функциях поиск-замены из “дополнительных настроек границ парсинга”.

Синтаксис регулярных выражений (оригинал находится тут)

Для замены куска текста с динамической серединой используется регулярное выражение .*. Например, если нужно заменить все теги ссылок, ведущие на определенный сайт, в функцию поиск-замены введем следующую строку:

re:

Примеры регулярных выражений используемых в Content Dwnloader:

re:<td><b>[^<>]+</b></td>| или re:<br>(\w+\s+\w+)<br>| – указывает что среди этих тегов есть чтото (ибо .* захватывает много) и это мы вырезаем.
re:(\d{2})\:(\d{2})\:(\d{2}) UTC| – формат даты через двоеточие, (было применено для вывода даты без времени в конце статьи в таком виде “Дата публикации:08.07.2010 11:15:44 UTC “)
re:^Анатолийская палитра – ([0-9]+)$| – указывает на слово с меняющееся цыфрой, которое вырезаем из текста.
re: (?-m)^\s*(.*?)\s*$|\1 – удаление лишних пробелов вначале и после предложений
re:<p>UNKNOWN ({.*?})</p>| – удалить <p>UNKNOWN {13245465677всяке-буквы-и-т.д.}</p> этот кусок

Вы также можете составить нужное рег.выражение используюя онлайн сервис  http://gskinner.com/RegExr/

Рассмотрим как можно еще применить регулярные выражения

Допустим парсим магазин и артикул имеется только в названии товара,

Бра Luminex 3099 Nut

Настенный светильник Nowodvorski Biedronki 2293

Люстра Premium Fleur 302/20 золото с белой подсветкой

будем выбирать из наименования товара несколько символьную цифру которая в некоторых случаях идет со слешем /

1. В дополнительные настройки границ выбираем границу артикула и добавляем  re:([0-9\/]{3,7})|($1)

Теперь регулярное выражение выделяет в скобочки артикул  Бра Luminex (3099) Nut

2. Осталось выбрать только то что в скобках, поскольку макрос REPLACE выполняется почти последним из общего порядка функций, то выполним выборку таким способом

[REPLACE(({get})|{get})]<CD_GRAN_4!>[/REPLACE]

3.  В результате получили только чистый арикул  3099

п.с. В комментариях пишите свои замечания и варианты

Автор: admin, 16 June 2011
Рубрики: Парсинг
Tags:
Есть 12 коммент. к сообщению: “Регулярные выражения в функциях поиск-замены”
  1. QJokeR says:

    Отличное дополнение к функциональности программы.

  2. Алекс says:

    Добавьте пожалуйста и для тайтла поиск-замену!!11

  3. Илья says:

    Подскажите пожалуйста, а как сделать такую штуку: нужно все картинки на сайте расположить по центру.
    Первое, что я делаю – это нахожу все картинки, посредством вот такой “регулярки”:
    Далее нужно этот тег заключить в тег , но как сделать так, чтобы содержимое тега не поменялось в результате замены, но справа и слева от этого тега добавились открывающий и закрывающий тег допустим?
    Заранее спасибо!

    • Илья says:

      Немного с кодом не получилось(
      Повторю пожалуй:
      Подскажите пожалуйста, а как сделать такую штуку: нужно все картинки на сайте расположить по центру.
      Первое, что я делаю – это нахожу все картинки, посредством вот такой “регулярки”:
      Далее нужно этот тег заключить в тег , но как сделать так, чтобы содержимое тега не поменялось в результате замены, но справа и слева от этого тега добавились открывающий и закрывающий тег допустим?
      Заранее спасибо!

  4. 3TAJIOH says:

    У меня почему-то не получается ссылки вырезать(

  5. dimmer says:

    <(?s).*test
    Проверял на gskinner.com, выражение работает. А в программе нет. Не выделяются переводы строк до искомого слова.

  6. Сергей says:

    есть артикул 000598 и 002560 как из него сделать 598 и 2560 соответственно?

  7. 0{1,4}(\d{1,9})
    меняем на
    $1

  8. fresh_fx59 says:

    Ещё полезная информация по регулярным выражениям
    http://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F

  9. Илья says:

    Есть Артикул NV-55555 а есть артикул NV-55, как удалить артикл NV-55 в столбце, чтобы он не обрезал полезные артиклы NV-55555, если я пишу NV-55| то остается 555, а надо просто удалить одноименики NV-55.

    • admin says:

      Здравствуйте.
      Пожалуйста, задавайте вопросы тут http://forum.sbfactory.ru
      Специалисты по регулярным выражениям отвечают на форуме.
      Спасибо!

Написать комментарий

Последние статьи

css.php