Regex 在android中从文本中提取完整的url

Regex 在android中从文本中提取完整的url,regex,string,url,Regex,String,Url,我想从一个大文本中提取完整的url,这样包含参数的完整url就需要进行扩展 它应该支持所有的url格式 URL的示例 www.facebook.com/mainhoon/jikii/50 m、 gmail.com 等 如正文: 您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您。如果该字符串具有url模式,则该字符串是完整

我想从一个大文本中提取完整的url,这样包含参数的完整url就需要进行扩展

它应该支持所有的url格式

URL的示例

  • www.facebook.com/mainhoon/jikii/50
  • m、 gmail.com 等
  • 如正文:


    您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您好,您。如果该字符串具有url模式,则该字符串是完整的url

    嗨,这是我的fb档案www.facebook.com/prasilabs,请查看

    在这个例子中,如果我们得到所有字符串并检查url模式,我们将得到url www.facebook.com/prasilabs

    public static List<String> extractUrls(String input)
    {
        List<String> result = new ArrayList<String>();
    
        String[] words = input.split("\\s+");
    
    
        Pattern pattern = Patterns.WEB_URL;
        for(String word : words)
        {
            if(pattern.matcher(word).find())
            {
                if(!word.toLowerCase().contains("http://") && !word.toLowerCase().contains("https://"))
                {
                    word = "http://" + word;
                }
                result.add(word);
            }
        }
    
        return result;
    }
    
    公共静态列表提取URL(字符串输入)
    {
    列表结果=新建ArrayList();
    String[]words=input.split(\\s+);
    Pattern模式=Patterns.WEB\u URL;
    for(字符串字:字)
    {
    if(pattern.matcher(word.find())
    {
    如果(!word.toLowerCase()包含(“http://”)和&!word.toLowerCase()包含(“https://”)
    {
    word=“http://”+word;
    }
    结果:添加(word);
    }
    }
    返回结果;
    }
    
    您尝试从文本中解析整个字符串,然后比较每个字符串以匹配url。如果该字符串具有url模式,则该字符串是完整的url

    嗨,这是我的fb档案www.facebook.com/prasilabs,请查看

    在这个例子中,如果我们得到所有字符串并检查url模式,我们将得到url www.facebook.com/prasilabs

    public static List<String> extractUrls(String input)
    {
        List<String> result = new ArrayList<String>();
    
        String[] words = input.split("\\s+");
    
    
        Pattern pattern = Patterns.WEB_URL;
        for(String word : words)
        {
            if(pattern.matcher(word).find())
            {
                if(!word.toLowerCase().contains("http://") && !word.toLowerCase().contains("https://"))
                {
                    word = "http://" + word;
                }
                result.add(word);
            }
        }
    
        return result;
    }
    
    公共静态列表提取URL(字符串输入)
    {
    列表结果=新建ArrayList();
    String[]words=input.split(\\s+);
    Pattern模式=Patterns.WEB\u URL;
    for(字符串字:字)
    {
    if(pattern.matcher(word.find())
    {
    如果(!word.toLowerCase()包含(“http://”)和&!word.toLowerCase()包含(“https://”)
    {
    word=“http://”+word;
    }
    结果:添加(word);
    }
    }
    返回结果;
    }
    
    通过Kotlin提取单个url

    private fun extractUrl(input: String) =
            input
                .split(" ")
                .firstOrNull { Patterns.WEB_URL.matcher(it).find() }
    

    通过Kotlin提取单个url

    private fun extractUrl(input: String) =
            input
                .split(" ")
                .firstOrNull { Patterns.WEB_URL.matcher(it).find() }
    

    添加包含URL的示例内容添加包含URL的示例内容