RegExp erhält Link von String außer mehreren www
Nov 29 2020
wenn ich versuche, Links von String wie zu bekommen
"Hallo Welt https://www.sample.com/voices/2020/my-sound-www.sample.com"
Ich bekomme mehrere Links von hier, weil ich mehrere habe www
. Wie kann ich das ausnehmen?
Ausgabe:
- https://www.sample.com/voices/2020/my-sound-www.sample.com
- www.sample.com
Diese Ausgabe ist falsch und das sollte ein Link sein, nicht zwei Links
https://www.sample.com/voices/2020/my-sound-www.sample.com
Mein Regex-Muster:
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?"
Antworten
1 WiktorStribiżew Nov 30 2020 at 05:04
Sie können verwenden
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
Hier ist das Muster
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"']*\.mp3
Siehe die Regex-Demo
Details :
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)
-http
, gefolgt von einem optionalens
Zeichen, dann:
und dann entweder//
mit einem optionalen Zeichen\
vor jedem/
oderwww.
, nur oderwww.
[^\s<>"']*
- null oder mehr Zeichen außer Leerzeichen,<
,>
,"
und'
\.mp3
- eine.mp3
Schnur.