Регулярное выражение URL из данных, извлеченных из ‹script›

У меня проблема с правильным распознаванием строки и исключением некоторого мусора из строки с URL-адресами, извлеченными из html. Вот моя строка:

{"small":"[https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/ODAwWDYwMA==/z/-bMAAOSw4GVYNbci/$_19.JPG, https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/ODAwWDU5Mw==/z/TLUAAOSwiONYNbch/$_19.JPG, https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/ODAwWDYwMA==/z/BGEAAOSw44BYNbcj/$_19.JPG, https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/ODAwWDYwMA==/z/anwAAOSwB09YNbcj/$_19.JPG, https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/ODAwWDYwMA==/z/zuMAAOSw-0xYNbcg/$_19.JPG, https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/ODAwWDYwMA==/z/U70AAOSwImRYNbcj/$_19.JPG, https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/NTgyWDgwMA==/z/owgAAOSwcUBYNbch/$_19.JPG, https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/ODAwWDYwMA==/z/TNgAAOSwiONYNbci/$_19.JPG, https://img.classistatic.com/crop/50x50/i.ebayimg.com/00/s/ODAwWDYwMA==/z/Dh0AAOSwiDFYNbcj/$_19.JPG]","medium":"[https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/-bMAAOSw4GVYNbci/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDU5Mw==/z/TLUAAOSwiONYNbch/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/BGEAAOSw44BYNbcj/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/anwAAOSwB09YNbcj/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/zuMAAOSw-0xYNbcg/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/U70AAOSwImRYNbcj/$_20.JPG, https://i.ebayimg.com/00/s/NTgyWDgwMA==/z/owgAAOSwcUBYNbch/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/TNgAAOSwiONYNbci/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/Dh0AAOSwiDFYNbcj/$_20.JPG]","large":"[https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/-bMAAOSw4GVYNbci/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDU5Mw==/z/TLUAAOSwiONYNbch/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/BGEAAOSw44BYNbcj/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/anwAAOSwB09YNbcj/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/zuMAAOSw-0xYNbcg/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/U70AAOSwImRYNbcj/$_20.JPG, https://i.ebayimg.com/00/s/NTgyWDgwMA==/z/owgAAOSwcUBYNbch/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/TNgAAOSwiONYNbci/$_20.JPG, https://i.ebayimg.com/00/s/ODAwWDYwMA==/z/Dh0AAOSwiDFYNbcj/$_20.JPG]","alt-tags":"[Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 1, Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 2, Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 3, Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 4, Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 5, Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 6, Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 7, Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 8, Wynajmę pokój 2osobowy od zaraz Wola/Śródmieście Wolska z Wola zdjęcie: 9]"}

И я использую это регулярное выражение:

\b(ftp|https?):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?\b

Поскольку я хочу, чтобы URL-адрес был разделен. Проблема в том, что регулярное выражение распознает ]","large":" как часть URL-адреса. Мне нужно использовать это в import.io. Я пытался изменить его и искал похожие случаи, но я просто не могу найти правильное решение...


person shimon893    schedule 27.11.2016    source источник


Ответы (1)


Вы можете использовать этот \b(ftp|https?):\/\/(\w+:{0,1}\w*@)?([^\] ]+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?\b

Я изменил часть \S+ на [^\] ]+, что означает, что она больше не соответствует скобкам ] и пробелам. Если у вас есть URL-адреса, содержащие круглые скобки, вы можете легко преобразовать свою строку, которая является объектом JSON, в объект на вашем языке и программно извлечь URL-адреса.

person Martin Cup    schedule 27.11.2016