【懒人精灵】使用go提取文本中的所有网址

go可以使用正则表达式来匹配URL,并返回JSON数组格式的结果。

// ExtractURLs 从文本中提取所有URL,返回JSON数组字符串
// 参数:
//   text: 要提取URL的文本
// 返回值:
//   JSON数组字符串,包含所有找到的URL,如:["http://example1.com", "http://example2.com"]
func ExtractURLs(text string) string {
    // 定义URL匹配的正则表达式
    urlPattern := `http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+`

    // 编译正则表达式
    re, err := regexp.Compile(urlPattern)
    if err != nil {
        return "[]"
    }

    // 查找所有匹配的URL
    matches := re.FindAllString(text, -1)

    // 将结果转换为JSON数组
    jsonData, err := json.Marshal(matches)
    if err != nil {
        return "[]"
    }

    return string(jsonData)
}

使用示例:

text := `今天一篇笔记,揭秘广州魔变化训练... http://xhslink.com/o/2fO4y0IsGE 
复制后打开【小红书】查看笔记!广州高端减肥训练营|28天瘦身之旅 为什么选择高端减... http://xhslink.com/o/117IEk42Ub`

urls := ExtractURLs(text)
// 返回: ["http://xhslink.com/o/2fO4ye0IsGE", "http://xhslink.com/o/117I2Ek42Ub"]

这个方法的特点:

  1. 使用正则表达式匹配所有以http开头或https开头的URL
  2. 支持各种URL格式,包括带参数的URL
  3. 返回JSON数组格式,便于在Lua中处理
  4. 如果没有找到URL或发生错误,返回空数组"[]"
  5. 可以处理包含多个URL的文本

正则表达式说明:

  • http[s]?: 匹配http或https
  • ://: 匹配://
  • (?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+: 匹配URL中的各种合法字符
  • 整个表达式可以匹配完整的URL,包括参数
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】使用go提取文本中的所有网址

企业级大数据智能营销管理系统

源码转让