5分钟快速上手xurls4cj:完整介绍与首次使用教程,轻松实现文本URL提取
【免费下载链接】xurls4cj从文本中提取 URL项目地址: https://gitcode.com/Cangjie-SIG/xurls4cj
xurls4cj 是一个用仓颉(Cangjie)语言编写的 URL 提取库,通过正则表达式从任意文本中精准识别并提取 URL,还能识别电子邮箱地址和 IPv4/IPv6 格式的 IP 地址。对于正在学习仓颉语言、或需要在项目中做文本链接解析的开发者来说,它是开箱即用的文本 URL 提取工具。本文将在 5 分钟内带你完成它的安装、配置与首次使用。
xurls4cj 是什么?
xurls4cj 是一个轻量级的 Cangjie 开源库,核心目标只有一个:从杂乱文本中提取出所有有效的 URL。它的实现参考了成熟的设计思路,基于 RFC 3987(国际化 URI)和 RFC 4291(IPv6)标准,因此对 Unicode 域名、各类网络协议的兼容都非常扎实。
简单来说,给它一段话,它就能帮你把里面的链接、邮箱、IP 全部"挑"出来——无需自己手写复杂的正则表达式。
核心特性一览:为什么值得使用
🔹三种匹配模式,覆盖不同场景
- 严格匹配:只提取标准格式的 URL,拒绝"假链接"
- 模糊匹配:同时识别 URL、邮箱地址、IP 地址(IPv4/IPv6)
- 特定 scheme 匹配:只提取指定协议的 URL,如仅取
https链接
🔹数据始终最新:项目引入了 AOT(Ahead-of-Time)编译机制,可实时从官网更新 URL scheme 列表和 TLD(顶级域名)数据,匹配规则永远跟得上互联网的变化。
🔹Unicode 友好:支持中文字符在内的国际化域名匹配,具体允许的 Unicode 字符范围定义在 unicode.cj 中。
🔹零配置开箱即用:仓库中已包含预生成的 scheme 与顶级域名数据,拿到即可编译使用。
快速引入 xurls4cj:依赖配置一步到位
使用 xurls4cj 前,请先安装仓颉语言开发环境(已验证通过的版本:Cangjie 0.53.18)。
方式一:作为依赖引入(推荐)
在你的仓颉项目配置文件cjpm.toml的依赖区添加一行:
[dependencies] xurls4cj = { git = "https://gitcode.com/Cangjie-SIG/xurls4cj" }然后执行:
cjpm update cjpm build方式二:直接克隆仓库研究源码
git clone https://gitcode.com/Cangjie-SIG/xurls4cj💡 项目配置见 cjpm.toml,当前稳定版本为 1.1.0,变更历史可查阅 CHANGELOG.md。
首次使用教程:三种匹配模式实战
导入库后,所有函数直接可用:import xurls4cj.*。下面用最短的示例看懂三种模式。
1. 严格匹配:只提取标准 URL
strict返回第一个标准 URL,strictAll返回全部:
import xurls4cj.* main(): Int64 { let text = "访问 https://example.com 或 http://test.org" println(strict(text)) // https://example.com println(strictAll(text)) // [https://example.com, http://test.org] return 0 }注意:对于abc://test这类无效协议,严格模式会返回空字符串——这正是"严格"的价值。
2. 模糊匹配:URL、邮箱、IP 一网打尽
relaxed和relaxedAll会按标准 URL > 部分 URL > 邮箱 > IP 地址的优先级依次识别:
import xurls4cj.* main(): Int64 { let text = "邮件 contact@my-company.io,服务器 172.16.254.1" println(relaxedAll(text)) // [www 类域名, contact@my-company.io, 172.16.254.1, ...] return 0 }解析日志、提取联系邮箱、排查网络地址?一个函数全搞定。
3. 特定 scheme 匹配:只要某一种协议
strictMatchingScheme与strictMatchingSchemeAll支持所有 IANA 注册的 scheme(完整列表见 schemes.cj):
import xurls4cj.* main(): Int64 { let text = "下载 ftp://ftp.example.com/file.zip,主页 https://secure-site.org" println(strictMatchingScheme("https", text)) // https://secure-site.org return 0 }接口速查表:6 个函数一次看懂
完整接口文档见 doc/feature_api.md。核心源码位于 xurls.cj:
| 函数 | 匹配模式 | 返回内容 | 适用场景 |
|---|---|---|---|
strict | 严格 | 第一个标准 URL | 取首个有效链接 |
strictAll | 严格 | 全部标准 URL | 批量提取链接 |
relaxed | 模糊 | 第一个 URL/邮箱/IP | 快速探测 |
relaxedAll | 模糊 | 全部 URL/邮箱/IP | 日志分析、联系人提取 |
strictMatchingScheme | 指定 scheme | 第一个匹配 URL | 只取 https 等特定协议 |
strictMatchingSchemeAll | 指定 scheme | 全部匹配 URL | 按协议分类提取 |
💡 小规律:函数名带
All的返回列表ArrayList<String>,不带All的返回单个字符串String,没有匹配时分别返回空列表和空字符串。
项目结构速览:数据从哪里来
xurls4cj 的"聪明"很大程度来自内置的最新数据:
- schemes.cj —— URL 协议列表(来自 IANA URI Schemes)
- tlds.cj —— 顶级域名列表(来自 IANA TLDs)
- tlds_pseudo.cj —— 伪顶级域名(如
co.uk,来自 Public Suffix List) - unicode.cj —— 允许的 Unicode 字符范围
- xurls.cj —— 核心正则匹配引擎
- xurls_test.cj —— 覆盖大量边界场景的测试用例
- feature_api.md —— 接口文档
仓库会定期更新这些数据文件,正常情况下无需手动干预。如果你希望编译时始终拉取官网最新数据,可参考 README.md 中"构建脚本(可选)"一节的说明。
总结:5 分钟收获一个可靠的 URL 提取工具
回顾一下刚才走过的路径:
- ✅ 在
cjpm.toml中添加依赖并执行cjpm update && cjpm build - ✅
import xurls4cj.*导入库 - ✅ 按场景选择
strict/relaxed/strictMatchingScheme系列函数
xurls4cj 以最小的学习成本,把"从文本中提取 URL、邮箱、IP"这件常见但易踩坑的事变成了一次函数调用。无论你是做爬虫数据清洗、日志分析,还是想深入学习仓颉语言的正则应用,它都是一个值得放进工具箱的实用选择 🎯
【免费下载链接】xurls4cj从文本中提取 URL项目地址: https://gitcode.com/Cangjie-SIG/xurls4cj
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考