RegExp स्ट्रिंग को कई www को छोड़कर लिंक मिल रहा है

Nov 29 2020

जब मैं स्ट्रिंग से लिंक प्राप्त करने की कोशिश करता हूं जैसे कि

"नमस्ते दुनिया https://www.sample.com/voices/2020/my-sound-www.sample.com"

मुझे यहाँ से कई लिंक मिलते हैं क्योंकि मेरे पास कई हैं www, इसके अलावा मैं कैसे कर सकता हूँ?

आउटपुट:

  1. https://www.sample.com/voices/2020/my-sound-www.sample.com
  2. www.sample.com

यह आउटपुट गलत है और यह एक लिंक होना चाहिए जो दो लिंक नहीं है

https://www.sample.com/voices/2020/my-sound-www.sample.com

मेरा रेगेक्स पैटर्न:

r"((https?:www\.)|(https?:\/\/)|(www\.))[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9]{1,6}(\/[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)?"

जवाब

1 WiktorStribiżew Nov 30 2020 at 05:04

आप उपयोग कर सकते हैं

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

यहाँ, पैटर्न है

(?:https?:(?:\\?\/\\?\/|www\.)|www\.)[^\s<>"']*\.mp3

रेगेक्स डेमो देखें

विवरण :

  • (?:https?:(?:\\?\/\\?\/|www\.)|www\.)- http, एक वैकल्पिक sचार के साथ पीछा किया , फिर :और फिर //एक वैकल्पिक के साथ \प्रत्येक से पहले /या www., बस याwww.
  • [^\s<>"']*- व्हाट्सएप , और <, के अलावा शून्य या अधिक वर्ण>"'
  • \.mp3- एक .mp3तार।