Помогите пожалуйста с функцией Поиск-Замена

Тема в разделе "Обработка данных при парсинге во вкладке "Контент"", создана пользователем Rank X, 2 янв 2016.

  1. Rank X

    Rank X New Member Пользователи

    Регистрация:
    24 апр 2015
    Сообщения:
    28
    С Наступившим Новым Годом!
    У меня не получается правильно настроить макрос REPLACE. Нужно, чтобы в исходном тексте макрос находил слова содержащие точку (.) и два нижних подчеркивания (_) и заменял такие слова на тире или минус (-). Все слова подлежащие замене имеют стандартный вид (для примера привожу три слова):
    10Bet_1.80_П1
    10Bet_3.75_X
    10Bet_3.40_П2
    Между двумя знаками (_) всегда стоит десятичная дробь где разделителем является точка (.). Перед первым знаком (_) в моем примере стоит 10Bet, но там может быть и другое выражение. Десятичные дроби в слове тоже могут отличаться от приведенных в примере. В исходном тексте может быть несколько слов подлежащих замене.
    Трудность в том, что не могу правильно задать параметр "что заменить".
    10Bet_1.80_П1|-
    10Bet_3.75_X|-
    10Bet_3.40_П2|-
    На первый взгляд казалось, что справлюсь сам, но увы..
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Код:
    re:^([^\.\_]*)\_([^\.\_]*)\.([^\.\_]*)\_([^\.\_]*)$|-
    пробуйте регулярным выражением
     
  3. Rank X

    Rank X New Member Пользователи

    Регистрация:
    24 апр 2015
    Сообщения:
    28
    К сожалению, ничего не получается. Видимо, что-то делаю не так.
    Прописал такую конструкцию:
    [REPLACE(re:^([^\.\_]*)\_([^\.\_]*)\.([^\.\_]*)\_([^\.\_]*)$|-)]10Bet_1.80_П1 10Bet_3.75_X 10Bet_3.40_П2[/REPLACE]
    На выходе хочу получить:
    - - -
    Но все остается как есть:
    10Bet_1.80_П1 10Bet_3.75_X 10Bet_3.40_П2
     
  4. t@lev@n

    t@lev@n Member Пользователи

    Регистрация:
    16 июн 2014
    Сообщения:
    88
    Код:
    re:([^\.\_\s]+)\_([^\.\_\s]+)\.([^\.\_\s]+)\_([^\.\_\s]+)|-
    Попробуй так
     
  5. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    приведите пример страницы где присутствует такое слово или скопируйте код.
    Если на точное совпадение (от начало и до конца) не сработало то попробуйте вариант совпадение как предложил t@lev@n
     
  6. Rank X

    Rank X New Member Пользователи

    Регистрация:
    24 апр 2015
    Сообщения:
    28
    Большое Вам спасибо! Применил данную конструкцию, работает четко!
     
  7. Rank X

    Rank X New Member Пользователи

    Регистрация:
    24 апр 2015
    Сообщения:
    28
    Вам тоже спасибо, светлая голова! К сожалению привести пример страницы не смогу, эти слова получаются в таком виде, потому что я их так собираю одной настройкой парсера. Потом, уже другой настройкой, парсю полученное, отсеивая только нужные слова, теперь уже с заменой ненужных на знак "-".
     
    Последнее редактирование: 3 янв 2016
  8. Rank X

    Rank X New Member Пользователи

    Регистрация:
    24 апр 2015
    Сообщения:
    28
    Подскажите пожалуйста, как можно подправить эту конструкцию, чтобы слова подобные двум приведенным ниже также заменялись знаком "-".
    bet-at-home.it_2.41_П1
    bet365.it_2.80_П2
    В начале этих слов перед первым знаком "_", встречается точка, и после применения функции Поиск-Замена, остается всё что до этой точки, включая её саму.
    Т.е. применительно к этим двум словам, на выходе получаю это:
    bet-at-home.-
    bet365.-
     
  9. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Код:
    re:(?i)([^\.\_\s]{3,})\.([\wа-я\d\.\-\_]{3,})|-
     
    Последнее редактирование: 7 янв 2016
  10. Rank X

    Rank X New Member Пользователи

    Регистрация:
    24 апр 2015
    Сообщения:
    28
    Спасибо, мне надо чтобы та, предыдущая, тоже работала. Их как-то надо увязать в одну связку.
     
  11. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Построчно можно указать в ctrl+4 или через {break} в макросе замены
     

Поделиться этой страницей