当我尝试从字符串(如(中获取链接时
"你好世界https://www.sample.com/voices/2020/my-sound-www.sample.com">
我从这里得到多个链接,因为我有多个www
,我怎么能除此之外?
输出:
- https://www.sample.com/voices/2020/my-sound-www.sample.com
- 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
字符串