Написание шаблона регулярных выражений с несколькими условиями - PullRequest
0 голосов
/ 17 июня 2019

Я хочу найти URL-адреса в строке содержимого HTML в Java. Это URL должны иметь некоторые условия.

В качестве примера рассмотрим строку String.

"background-image: url("https://mmbiz.qpic.cn/mmbiz_gif/uMa5Y2rQ8PkXuk9veIibUjBk1iaxlKqoAeBKejmFicic0C3lZuG58rYIPAHzsR6icicecc58OacuXeZ9CUicvG1d5ib3v/0?wx_fmt=gif") style="display: flex;" " 

Я хочу извлечь https://mmbiz.qpic.cn/mmbiz_gif/uMa5Y2rQ8PkXuk9veIibUjBk1iaxlKqoAeBKejmFicic0C3lZuG58rYIPAHzsR6icicecc58OacuXeZ9CUicvG1d5ib3v/0?wx_fmt=gif

Мне нужно написать шаблон регулярного выражения, который может начинаться как с https, так и с http, затем должен появиться ://mmbiz.qpic.cn/, затем может быть любая строка.

Ответы [ 2 ]

0 голосов
/ 17 июня 2019

Пожалуйста, попробуйте следующее регулярное выражение, надеюсь, это сработает для вас:

[^\"]*http[s]*://mmbiz.qpic.cn(.*?)[^\"]*

0 голосов
/ 17 июня 2019

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

(?<=\")(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?mmbiz\.qpic\.cn[^\"]+

Проверьте демонстрация и объяснение

Версия 2

Если вы также хотите иметь возможность отслеживать одинарные кавычки, используйте это:

(?<=[\"\'])(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?mmbiz\.qpic\.cn[^\"\']+

Демонстрация и объяснение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...