regex - 正则表达式,获取服务器地址的结尾
问题描述
无法弄清楚为什么这不起作用。我只需要捕获服务器地址(在 / 或 ? 之前,以先到者为准),然后在另一个捕获组中剩余的任何内容。所以:
http://something.com/path?query=hello/goodbye
变成
g1: http://
g2: something.com
g3: /path?query=hello/goodbye
但是我尝试的每个正则表达式,服务器地址捕获组都包含斜杠,这些:
/(https?:\/\/)(.+)([\/\?].+)/
/(https?:\/\/)(.+)(\/|\?.+)/
给我吗:
g1: http://
g2: something.com/path
g3: ?query=hello/goodbye
我什至试过说“不要斜线”,或者我是这么想的,但它没有用:
/(https?:\/\/)([.^\/]+)(\/|\?.+)/
解决方案
对于您的正则表达式(https?:\/\/)(.+?)([\/\?].+)
,您几乎就在那里。
您可以使(.*)
部分非贪婪:(.*?)
以匹配服务器地址。
请注意,您使用 3 个捕获组,但根据您的问题,您只想捕获服务器地址以及另一个捕获组中剩余的任何内容。您可以使用非捕获组开始您的正则表达式以(?:
仅获得 2 个组。
推荐阅读
- jenkins - 在 groovy 管道中找不到不可序列化的组件
- angular - 如何从 Mat 表单字段计算数学方程,该字段使用 Angular 材料像等号的 excel 一样公式化
- java - 将文本插入 word 而不转换为段落
- azure-active-directory - 注册和租户入职 - 如何仅在受邀申请时才允许
- json - 将 JSON 文件解析为 csv
- ejabberd - 如何从 ejabberd 数据包中提取数据?
- c - C: strcat() 终止程序没有错误
- python - 是否有读取 ms office 文件的底层 xml 的 python 包?
- javascript - 使用 post 方法获取附加输入字段的值
- java - 是否可以将类文件从包外部扩展到包