Как начать цикл по невидимым на странице объектам?

Поддержка
  • @fox said in Как начать цикл по невидимым на странице объектам?:

    Здесь само выражение неправильное

    Я не то вставил, хотел вставить вот это из вашего скрипта:

    [([\s\S]*?)]
    

    Раз группы не используются значит круглые скобки для первого запроса не обязательны, правильно?
    Первый и второй запросы:
    0_1537896407639_8377ff2c-abf8-4fa9-ba5f-9198e56d8a98-image.png

    Почему во втором запросе не работает выделение до закрывающей кавычки?

    (http)(.*?)(?=")
    
  • @senerg

    Я не то вставил, хотел вставить вот это из вашего скрипта: [([\s\S]*?)]

    У меня не такое выражение, присмотритесь, я экранировал внешние квадратные скобки.

    Раз группы не используются значит круглые скобки для первого запроса не обязательны, правильно?

    Почему группы не используются? оО

    Почему во втором запросе не работает выделение до закрывающей кавычки? (http)(.*?)(?=")

    Давай разберёмся что делает эта регулярка, ищем данные первой группы http, затем вторая группа это любой символ 0 и более раз, не жадные, третья группа это вперёд смотрящее утверждение. Ума не приложу зачем нужны три группы и утверждение..


    Погоди, ты спрашиваешь почему твоя регулярка не работает, а моя работает? Убери утверждение в третьей группе

    (http)(.*?)"
    
  • @fox said in Как начать цикл по невидимым на странице объектам?:

    У меня не такое выражение, присмотритесь, я экранировал внешние квадратные скобки.

    Вопрос был лишь в том обязательно ли любые символы отделять от экранированных квадратных скобок круглыми? Вот скрин из вашего скрипта:
    0_1537897426847_a612b7da-9ac0-4852-a67b-0d22a160e356-image.png

    Что делает регулярка:
    0_1537897603416_3600393d-eb5d-4ead-ab48-c8144769140d-image.png

    Смотрящее вперед утверждение в БАС разве не работает? А если там вместо jpg появится png я тоже его хочу скачать.

  • @senerg

    обязательно ли любые символы отделять от экранированных квадратных скобок круглыми?

    В круглые скобки я выделил лишь те данные, которые хочу получить, без лишних символов.

    А если там вместо jpg появится png я тоже его хочу скачать.

    Я первым сообщением в этой теме скинул регулярку

    "(http.*?)"
    

    Смотрящее вперед утверждение в БАС разве не работает?

    А что по вашему означает "смотрящее вперед утверждение"?


    Утверждения

    Утверждение – это проверка символов, следующих до или после текущего символа. Простейшие утверждения закодированы последовательностями \A, \Z, ^, $ и т.д. Более сложные утверждения кодируются с помощью подшаблонов. Постараемся вкратце описать, как это делается.

    Существует два типа утверждений: те, что смотрят на текущую позицию в исходной строке ( "смотрящие вперед" ), и те, что смотрят на символы перед текущей позицией ( "смотрящие назад" ).

    Утверждения, закодированные подшаблонами, сравниваются как обычные подшаблоны, за исключением того, что при их обработке не происходит изменения текущей позиции.

    "Смотрящие вперед" утверждения ищут совпадения в строке за текущей позицией поиска и начинаются с (?= для позитивных утверждений и с (?! для негативных. Например,

    \w+(?=;)

    совпадает со словом, заканчивающимся точкой с запятой (не включая точку с запятой в результат поиска), и

    foo(?!bar)

    совпадает с любым появлением foo, после которого нет bar.

  • Я первым сообщением в этой теме скинул регулярку
    "(http.*?)"

    http.*?.jpg выделяет последние jpg, а я хотел предусмотреть вариант если будет не jpg.

    Смотрящие вперед (?=") у меня и ищет до закрывающей кавычки, разве я не прав?

  • @senerg Вы читаете мои сообщения вообще? Или просто тролите?
    0_1537903481528_7876ca79-e618-4fd4-b776-50887e42a424-изображение.png

    0_1537903610295_1dc89dc3-ae81-4530-acf5-c616aa672dc5-изображение.png

  • @fox Извините, может я что-то не правильно понял.

    Вы предложили вот таким способом вытащить ссылки (это скриншот, орфография сохранена):
    0_1537904089433_ebbbf84d-bfb0-40a7-af6f-801c306cbd95-image.png

    Я захотел изменить это выражение так, чтобы чтобы оно выделяло все ссылки не зависимо от того есть на конце .jpg или нет. Я составил такую регулярку, которая как мы видим на javascript работает:
    0_1537904262094_9926bba3-0980-476a-815c-2b14b9a60ec1-image.png

    Вопрос: Почему эта регулярка не работает в БАС и как ее изменить так, чтобы она там заработала?

  • @senerg

    Вы предложили вот таким способом вытащить ссылки (это скриншот, орфография сохранена):

    В первом же моём сообщении в этой теме я предложил !две! регулярки:

    0_1537922112052_e68b0554-2d73-4c47-b8ce-9001870418b3-изображение.png

    Я захотел изменить это выражение так, чтобы чтобы оно выделяло все ссылки не зависимо от того есть на конце .jpg или нет

    Ещё раз, внимательно посмотрите на эту регулярку:

    "(http.*?)"
    

    Она забирает ссылку до кавычки, причём здесь .jpg?

    Я составил такую регулярку, которая как мы видим на javascript работает:

    JavaScript — это мультипарадигменный язык программирования. Причём здесь регулярки?


    Вопрос: Почему эта регулярка не работает в БАС и как ее изменить так, чтобы она там заработала?

    Вот тестовый скрипт где я применяю регулярку из своего первого сообщения в этой теме.
    0_1537923000731_18c728e2-3fa9-400d-8f9f-2436ef967baf-изображение.png


    Если вам принципиально именно ваша регулярка с выражением, то создайте общую группу для ссылки

    (http.*?)(?=")
    

    и оно тоже будет работать, вот тестовый скрипт

    0_1537923222857_568f3135-4e6c-477e-851c-2943532e8bfb-изображение.png

  • @senerg Можно сделать все проще, через действие "Яваскрипт". Вот пример: 0_1537951964967_example222.xml

  • оффтоп
    @santilo С возвращением :D Рад тебя видеть. Ровно пол года прошло с твоего последнего визита
    0_1537963361550_db34b761-577c-49a5-8c7d-ef7abe3fdaee-изображение.png

  • @fox
    0_1537964423809_7f766305-3ec7-42ad-be5d-de5c45c494a6-image.png

    Может я чё-то ослеп, а это тогда что, кавычки жирно выделены:
    0_1537964536089_8d22f2f3-1081-4dbb-9383-bdeac76ba42c-image.png

    Или сервис regex101 для БАС по каким-то причинам не подходит?

    0_1537964707255_d4fe8f09-8d64-48a4-aa48-1641f30afe9d-image.png

    Мне принципиально понять какие регулярки работают в БАС, а какие нет и почему.

  • @senerg Мне в последние сутки форум стал напоминать наш с вами общий чат.

    Может я чё-то ослеп, а это тогда что, кавычки жирно выделены:

    https://regex101.com/r/zai2Dy/3

    Группы! Блин, группы!!

    0_1537965137243_61f976ad-db1c-47a0-a8b1-9843a674dd4f-изображение.png

    Регулярка вернёт значения, что в круглых скобках. Без кавычек.


    Или сервис regex101 для БАС по каким-то причинам не подходит?

    Сервис подходит, но как и любым другим инструментом, им ещё нужно научится пользоваться.


    Мне принципиально понять какие регулярки работают в БАС, а какие нет и почему.

    Правильно составленные регулярки работают все

  • @fox said in Как начать цикл по невидимым на странице объектам?:

    Мне в последние сутки форум стал напоминать наш с вами общий чат.

    Виноват. Я сейчас тут акклиматизируюсь и тоже начну на вопросы отвечать.
    Получается вы в БАСе только группу из скобок взяли. Спасибо, что разъяснили, тему можно закрывать.

  • @senerg

    Спасибо, что разъяснили, тему можно закрывать.

    Пожалуйста, но тему лучше оставить. Чтобы второй раз так же кому-нибудь не рассказывать :D

  • @santilo said in Как начать цикл по невидимым на странице объектам?:

    @senerg Можно сделать все проще, через действие "Яваскрипт". Вот пример: 0_1537951964967_example222.xml

    Этот вариант тоже работает и действительно проще. Мы его запомним, спасибо!

  • @santilo Можете пояснить эту строчку, что она делает:

    [[URLS_IMG]] = VAR_URLS_IMG.split(",")
    

    split(",") - Я так понимаю делить запятой
    А VAR_URLS_IMG - такой переменной в скрипте нету это что?

  • @allive
    Ну да, я собираюсь конкретно с басом разобраться.

    • Для сплит делителем является "," или просто ,? Если "," то куда делась открывающая кавычка первой ссылки и закрывающая кавычка последней ссылки?

    • VAR_URLS_IMG это что? Откуда взялся VAR?

  • @senerg said in Как начать цикл по невидимым на странице объектам?:

    А VAR_URLS_IMG - такой переменной в скрипте нету это что?

    Предположу что есть такая [[URLS_IMG]]? Это бас так называет. Не совсем понялвашего вопроса по кавычкам это применительно к какому абзацу текста? Моего? Так я назвать ссылку как угодно могу сколько напеЙсал столько и напейсал. Вашего? запятым в [[URLS_IMG]] амба и у вас будет массив

  • @allive said in Как начать цикл по невидимым на странице объектам?:

    Не совсем понялвашего вопроса по кавычкам

    Вопрос снимается: кавычки для баса обязательны в аргументе split.

    @allive said in Как начать цикл по невидимым на странице объектам?:

    Моего?

    К вашему тексту вопросов не было. Вопрос был к @santilo, или к тем, кто понимает значение его строчки:

    [[URLS_IMG]] = VAR_URLS_IMG.split(",")
    

    Если бы строчка была такой:

    [[URLS_IMG]] = URLS_IMG.split(",")
    

    я бы понял. Потому что переменной VAR_URLS_IMG в его скрипте не было. Или я просто не знаю что означает переменная с дописанным в начале "VAR_"