RegExp从字符串中获取链接,但多个www



当我尝试从字符串(如(中获取链接时

"你好世界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()@:%_+.~#?&/=]*)?"

您可以使用

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

查看regex演示

详细信息

  • (?:https?:(?:\?/\?/|www.)|www.)-http,然后是可选的s字符,然后是:,然后是在每个/之前带有可选//,或者是www.,或者只是www.
  • [^s<>"']*-空白、<>"'以外的零个或多个字符
  • .mp3—一个.mp3字符串

最新更新