javascript - 正则表达式捕获超链接
问题描述
我有一个正则表达式:
/(\b(((?<alias>.*)\s*:\s*)){0,1}(?<link>(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|]))/ig;
现在,我正在尝试匹配文本 - Instructions: http://google.com microsoft: http://microsoft.com,使用上面的正则表达式,这样Instructions: http://google.com应该匹配 1 和microsoft : http://microsoft.com应该匹配 2。
Instructions和microsoft应作为别名捕获。但它不起作用并且匹配整个字符串说明: http: //google.com microsoft:http ://microsoft.com as match 1。
在此处查看示例。
解决方案
使用 2 个命名组,一个选项可能是
\b(?<alias>[^\s:]+):\s*(?<link>(?:https?|ftp|file):\/\/\S+)
模式匹配:
\b
一个词的边界(?<alias>[^\s:]+)
组别名:\s*
匹配:
和可选的空白字符(?<link>
捕获组链接(?:https?|ftp|file):\/\/
匹配任何备选方案和://
\S+
匹配 1+ 个非空白字符
)
关闭群组链接
推荐阅读
- ios - 在 React Native 中创建 SDK
- ldap - 我如何加密 ldap 密码?
- terraform - 使用 Terraform 创建阿里云实例时如何使用自定义镜像
- powershell - 当源数据的顺序不同时,我可以保持 Where-Object 输出与多个 -or 条件的顺序相同吗?
- php - 检查值是否为空 in_array?PHP
- arrays - 将 tableView 中的所有 textField 值获取到数组和验证中
- c - 取消引用指针数组
- java - 在 PubSubToBigQuery 模板中定义 TableSchema
- python - 模型的特征数量必须与python中的输入相匹配
- linq - 在 Linq 代码中创建新组时如何排序?