RegExp mendapatkan tautan dari String kecuali beberapa www
Nov 29 2020
ketika saya mencoba untuk mendapatkan tautan dari String seperti
"Halo Dunia https://www.sample.com/voices/2020/my-sound-www.sample.com"
saya mendapatkan banyak tautan dari sini karena saya memiliki banyak www
, bagaimana saya bisa kecuali itu?
keluaran:
- https://www.sample.com/voices/2020/my-sound-www.sample.com
- www.sample.com
keluaran ini salah dan seharusnya satu tautan, bukan dua tautan
https://www.sample.com/voices/2020/my-sound-www.sample.com
Pola regex saya:
r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?"
Jawaban
1 WiktorStribiżew Nov 30 2020 at 05:04
Kamu dapat memakai
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
Di sini, polanya
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"']*\.mp3
Lihat demo regex
Rincian :
(?:https?:(?:\\?\/\\?\/|www\.)|www\.)
-http
, diikuti dengan opsionals
char, maka:
dan kemudian//
dengan opsional\
sebelum setiap/
atauwww.
, hanya atauwww.
[^\s<>"']*
- nol atau lebih karakter selain spasi,<
,>
,"
dan'
\.mp3
-.mp3
string.
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'