RegExp obteniendo el enlace de String excepto varios www
Nov 29 2020
cuando trato de obtener enlaces de String como
"Hola Mundo https://www.sample.com/voices/2020/my-sound-www.sample.com"
obtengo un enlace múltiple desde aquí porque tengo varios www
, ¿cómo puedo excepto eso?
salida:
- https://www.sample.com/voices/2020/my-sound-www.sample.com
- www.sample.com
esta salida es incorrecta y debería ser un enlace, no dos enlaces
https://www.sample.com/voices/2020/my-sound-www.sample.com
Mi patrón de expresiones regulares:
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?"
Respuestas
1 WiktorStribiżew Nov 30 2020 at 05:04
Puedes usar
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
Aquí, el patrón es
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"']*\.mp3
Ver la demostración de expresiones regulares
Detalles :
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)
-http
, seguido con uns
carácter opcional , luego:
y luego//
con un opcional\
antes de cada/
owww.
, solo owww.
[^\s<>"']*
- cero o más caracteres que no sean espacios en blanco,<
,>
,"
y'
\.mp3
- una.mp3
cuerda.