[英]Regular Expression, match url without “http://” and any other “/”
我环顾了一会儿,但可能我不能用适当的关键词“谷歌”..所以我在这里。 我需要匹配一个url剥离协议到第一个/
目标:匹配http://中的第一个子字符串到第一个/(可能是最后/不存在)或结束这里出现问题:
我写了这个正则表达式
(?<= //)(。*?)(?= /)
但是这个正则表达式只匹配url,最后除了协议之外至少有1'/'。
这里有一些网址要匹配:
^(?:\w+://)?([\w.-]+)/?.*$
(Java的双反斜杠)似乎适用于所有示例,包括简单的www.google.com
就像是...
^(https?:\/\/)?([0-9a-zA-Z][-\w]*[0-9a-zA-Z\.)+[a-zA-Z]{2,6})\/
我在一本书中看到了这一点。 这应该考虑变量http / https,禁止空格,并可能停在第一个斜杠。
评论我是否做错了。
这适用于所有示例,但最后一个:
(?<=//)[^/\\s]+
[^/\\\\s]
是一个否定的字符类,匹配除/
和\\s
之外的每个字符(空格,例如空格,制表符或换行符)
在Regexr上看到它
什么是行不通的是最后一行。 您想如何决定什么是链接? 如果我使第一部分可选,它将匹配除/
和空格之外的每个字符。
看起来你有正确的答案,但你错过了没有尾随“/”的可能性。 尝试这个:
(?<=//)(.*?)(?=/|$)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.