RegExp получает ссылку из String, кроме нескольких www
Nov 29 2020
когда я пытаюсь получить ссылки из String, например
"Привет, мир https://www.sample.com/voices/2020/my-sound-www.sample.com"
Я получаю несколько ссылок отсюда, потому что у меня их несколько www, как я могу исключить это?
вывод:
- https://www.sample.com/voices/2020/my-sound-www.sample.com
- www.sample.com
этот вывод неверен, и это должна быть одна ссылка, а не две ссылки
https://www.sample.com/voices/2020/my-sound-www.sample.com
Мой шаблон регулярного выражения:
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?"
Ответы
1 WiktorStribiżew Nov 30 2020 at 05:04
Вы можете использовать
final reg = RegExp(r'(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"'']*\.mp3');
final m = reg.firstMatch(test);
print(m.group(0));
// => https://www.caferilik.com/wp-content/uploads/2020/11/Anne-Baba-Biz-Suçluyuz-Muhafazakar-Ailelerde-Kuşak-Çatışması-Sesli-Kitap-www.caferilik.com_.mp3
Здесь шаблон
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"']*\.mp3
См. Демонстрацию регулярного выражения
Детали :
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)-http, за которым следует необязательныйsсимвол, затем:либо//необязательный\перед каждым,/либоwww., просто илиwww.[^\s<>"']*- ноль или больше символов , кроме пробелов,<,>,"и'\.mp3-.mp3строка.