我环顾了一会儿,但可能我不能用适当的关键词“谷歌”..所以我在这里。 我需要将url剥离协议匹配到first /
目标:匹配http://中的第一个子字符串/第一个/(可能是最后/不存在)或结束 这里出现了一个问题:
我写了这个正则表达式
(小于?= //)(?*)(?= /)
但是这个正则表达式只匹配url,最后除了协议之外至少有1'/'..
这里有一些匹配的网址:
答案 0 :(得分:0)
^(?:\w+://)?([\w.-]+)/?.*$
(Java的双反斜杠)
似乎适用于您的所有示例,包括简单的www.google.com
答案 1 :(得分:0)
像...一样的东西。
^(https?:\/\/)?([0-9a-zA-Z][-\w]*[0-9a-zA-Z\.)+[a-zA-Z]{2,6})\/
我在一本书中看到了这一点。这应该考虑变量http / https,禁止空格,并可能停在第一个斜杠。
评论我是否做错了。
答案 2 :(得分:0)
这适用于你的所有例子,但是最后一个:
(?<=//)[^/\\s]+
[^/\\s]
是一个否定的字符类,匹配除/
和\s
之外的所有字符(空格,例如空格,制表符或换行符)
最后一行不起作用。您想如何决定什么是链接?如果我将第一部分设为可选,则它将匹配除/
和空格之外的每个字符。
答案 3 :(得分:0)
好像你有正确的答案,但你错过了没有尾随“/”的可能性。试试这个:
(?<=//)(.*?)(?=/|$)