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

Поддержка
  • @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_"

  • @senerg

    Или я просто не знаю что означает переменная с дописанным в начале "VAR_"

    Переменные в BAS пишутся двумя способами [[URLS_IMG]] либо VAR_URLS_IMG

  • @fox То есть нет вообще ни какой разницы между URLS_IMG и VAR_URLS_IMG? В чем смысл тогда добавлять VAR_?

  • @senerg Читайте внимательно, повторять одно и тоже просто не хочется

    Переменные в BAS пишутся двумя способами [[URLS_IMG]] либо VAR_URLS_IMG

    То есть нет вообще ни какой разницы между URLS_IMG и VAR_URLS_IMG? В чем смысл тогда добавлять VAR_?

    Переменную можно записать либо в квадратные скобки [[URLS_IMG]], либо без квадратных скобок, но с приставкой VAR_