Java正则表达式提取字符串中的URL链接

有时候会有一些需求,需要提取用户输入文本中的链接。比如提取抖音、火山、小红书、微视、皮皮虾、快手等平台分享的文本里的链接地址。如果靠自己去写正则表达式,也是可以的,但是情况太多了,可能考虑不够全面。而且上述平台分享的文本也是一直在变化的,所以适用性要足够普遍。万幸,Android本身就提供了这样的方法,如下:

import android.util.Log;
import android.util.Patterns;

import java.util.regex.Matcher;

/**
 * Java正则表达式提取字符串中的URL链接.
 */
public class LinkPatternsUtil {
    private static final String TAG = LinkPatternsUtil.class.getSimpleName();

    public static String getLinkFromString(String data) {
        String link = "";
        Matcher matcher = Patterns.WEB_URL.matcher(data);
        if (matcher.find()) {
            link = matcher.group();
            //打印日志
            Log.e(TAG, "link = " + link);
        }
        return link;
    }
}

其中起作用的方法是Patterns.WEB_URL.matcher(data),负责匹配URL。

使用方法如下:

String data = "3.56 XzG:/ 复制打开抖音,看看【直男说的作品】黑龙江第五大城市房价回到2007,小城市房价鹤岗化... https://v.douyin.com/6dKc1Uu/";
LinkPatternsUtil.getLinkFromString(data);

输出结果如下:

LinkPatternsUtil: link = https://v.douyin.com/6dKc1Uu/

经过测试,微视、抖音、快手等亲测可用。如果您是Java后端,需要用到Patterns源码,可以到下面下载:

***此处内容评论后可见***

温馨提示:此处为隐藏内容,需要评论或回复留言后可见

评论查看

 

发表回复

后才能评论