regex - 完成正则表达式以将 url 与端口号匹配
问题描述
我需要这个正则表达式:
(https?:\/\/(?:w{1,3}.)?[^\s]*?(?:\.[a-z]+)+)(?![^<]*?(?:<\/\w+>|\/?>))
匹配此模式http://localhost:3000或任何具有端口号的 url。
链接到 rubular https://rubular.com/r/tkCOv181H2KJtU
解决方案
模式中有几点需要注意。
您必须在这部分中转义点以匹配它(?:w{1,3}\.)?
如果将点添加到字符类[^\s.]*
中,则不必将其设为非贪婪量词。
如果您只想要匹配,则可以省略外部捕获组。
您可以使端口部分可选(?::\d+)?
以匹配它:
https?:\/\/(?:w{1,3}\.)?[^\s.]+(?:\.[a-z]+)*(?::\d+)?(?![^<]*(?:<\/\w+>|\/?>))
推荐阅读
- excel - VBA使用ColumnBound在组合框中选择值
- reactjs - React 状态变量的特殊操作
- python - 如何在 Python 中使用不同的格式条件退出 while True 循环?
- python - 如何将 DirectInput 键发送到 Python 中的非活动窗口
- r - 删除一组子文本之前的文本
- java - 使用 Jackson 读取最外层的 JSON 对象而不是内部的对象?
- c++ - 如何使用 std::shared_ptr 的多重继承?
- javascript - 表单更改后如何显示确认消息?
- python - 用Python从字符串中提取整数
- android - 如何使用 AuthUI 将 Firebase 身份验证连接到现有后端/用户群