RegExp pobieranie linku z String z wyjątkiem wielu www
Nov 29 2020
kiedy próbuję uzyskać linki z String, takie jak
"Witaj świecie https://www.sample.com/voices/2020/my-sound-www.sample.com"
otrzymuję stąd wiele linków, ponieważ mam wiele www
, jak mogę to z wyjątkiem tego?
wynik:
- https://www.sample.com/voices/2020/my-sound-www.sample.com
- www.sample.com
to wyjście jest niepoprawne i powinno to być jedno łącze, a nie dwa łącza
https://www.sample.com/voices/2020/my-sound-www.sample.com
Mój wzorzec wyrażenia regularnego:
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?"
Odpowiedzi
1 WiktorStribiżew Nov 30 2020 at 05:04
Możesz użyć
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
Oto wzór
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"']*\.mp3
Zobacz demo wyrażenia regularnego
Szczegóły :
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)
-http
, a następnie z opcjonalnyms
węgla odbarwiającego, a potem:
, a następnie albo//
z opcjonalnie\
przed każdym/
lubwww.
, tak czywww.
[^\s<>"']*
- zero lub więcej znaków inne niż białe znaki,<
,>
,"
i'
\.mp3
-.mp3
sznurek.