Двойные границы и условие в случае пустоты

Тема в разделе "Решение проблем с использованием программы", создана пользователем Xpite, 16 ноя 2017.

  1. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    103
    Здравствуйте, у меня такая проблема
    Есть условие парсинга из тега <meta name="description" bla bla bla \> (он никогда не бывает пустой у сайта)

    Этот тэг в 90% случаев содержит нужную мне границу в квадратных скобках [ ]
    Я беру дополнительную границу парсинга поиском-заменой [{get}]|{get} И получаю нужный результат.

    Но я столкнулся с большой проблемой если эти квадратные скобки отсутствуют в этом теге. Задать нужную границу для этого случая в пункте "если граница парсинга окажется пустой, то вместо нее будет выводиться следующий текст" не выходит, т.к. для ее срабатывания нужна основная граница целиком пустая (через доп границы уже не проходит). Сузить ее до границ <meta name="description"{skip}[ и ]{skip}\> не помогает - если скобки есть, то все ок, а если их нет, он в это поле берет половину кода сайта до ближайшей квадратной скобки.

    Как мне решить мою проблему? Мне нужно задать либо основную границу парсинга в рамках одной строки от начальной <meta name="description" (чтобы не искал квадратную скобку по всему коду, а только на этой строке, где начальная граница)
    Либо чтобы работало поле "если граница парсинга окажется пустой, то вместо нее будет выводиться следующий текст" и после обработки дополнительных границ парсинга (в данном случае функции поиска-замены [{get}]|{get} )

    Помогите пожалуйста, всю голову уже сломал. Макросы [CHECKENTRY([ANYTEXT])] тоже не помогли.
     
  2. aresa

    aresa Well-Known Member Пользователи

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Здравствуйте!
    При задании границ парсинга, можно задавать более одной границы. Или так называемая альтернативная граница. Раскрываете плюсом и прописываете вторую границу.
    Если не срабатывает первая, сработает вторая. Задаете альтернативное начало и также альтернативный конец.


    upload_2017-11-16_20-50-44.png
     
    Root нравится это.
  3. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    103
    Спасибо за совет, но он мне не подходит, т.к. эта граница парсинга не будет пустой (она либо есть как мне надо, либо отсутствуют квадратные скобки и она находит скобку в коде дальше), соответственно не будет производиться поиск альтернативной границы. И именно эта граница наиболее полная, к сожалению. :) А вариант, когда берутся основные границы, а к ним уже ставятся дополнительные через поиск-замену ([{get}]|{get}) нужной части границы, программа не считает за пустую, даже если она пустая получается.
     
    Root нравится это.
  4. Dron25

    Dron25 Well-Known Member Пользователи

    Регистрация:
    17 июн 2014
    Сообщения:
    263
    может поможет Вам

    [IFNIL]первая граница[ELSE]если нету первой, тогда отображать вторую[/IFNIL]
     
    Root и Xpite нравится это.
  5. aresa

    aresa Well-Known Member Пользователи

    Регистрация:
    17 окт 2015
    Сообщения:
    180
    Может тогда примеры ссылок дадите и подчеркнете, что нужно "взять". А то не совсем понятна задача.
     
    Root нравится это.
  6. Xpite

    Xpite Member Пользователи

    Регистрация:
    13 мар 2017
    Сообщения:
    103
    Ваш вариант помог, спасибо большое!
     
    Root нравится это.

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