RegExp obtenant le lien de String sauf plusieurs www
Nov 29 2020
lorsque j'essaye d'obtenir des liens de String tels que
"Bonjour le monde https://www.sample.com/voices/2020/my-sound-www.sample.com"
J'obtiens plusieurs liens à partir d'ici parce que j'en ai plusieurs www
, comment puis-je sauf cela?
production:
- https://www.sample.com/voices/2020/my-sound-www.sample.com
- www.sample.com
cette sortie est incorrecte et cela devrait être un lien et non deux liens
https://www.sample.com/voices/2020/my-sound-www.sample.com
Mon modèle regex:
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?"
Réponses
1 WiktorStribiżew Nov 30 2020 at 05:04
Vous pouvez utiliser
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
Ici, le modèle est
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"']*\.mp3
Voir la démo regex
Détails :
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)
-http
, suivi d'un caractère optionnels
, puis:
puis soit//
avec un optionnel\
avant chaque/
ouwww.
, juste ouwww.
[^\s<>"']*
- zéro caractères ou plusieurs autres que les espaces,<
,>
,"
et'
\.mp3
- une.mp3
chaîne.