首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >正则表达式,不使用"http://“和任何其他”/来匹配url。

正则表达式,不使用"http://“和任何其他”/来匹配url。
EN

Stack Overflow用户
提问于 2012-12-04 13:45:32
回答 4查看 2.1K关注 0票数 3

我环顾四周一段时间,但很可能我不能用合适的关键字“谷歌”。所以我来了。我需要与第一个/

目标:匹配http://到第一个/的第一个子字符串(可能最后/不存在),或者匹配到末尾,这里出现了一个问题:

我写了这个regex

(?<=/)(.*?)

但是这个正则表达式只匹配至少1 '/‘的url,最后不包括协议。

这里有一些要匹配的网址:

  • / (由我的正则表达式匹配)
  • www.google.com
  • www.google
  • xxx://www.google.com/hello/bleh废话./
  • xxx://google.com
  • google.com/blah/hello.php?x=11_x.hi
EN

回答 4

Stack Overflow用户

发布于 2012-12-04 13:53:49

代码语言:javascript
运行
复制
^(?:\w+://)?([\w.-]+)/?.*$

(用于Java的双反斜杠)似乎适用于所有示例,包括一个简单的www.google.com

票数 0
EN

Stack Overflow用户

发布于 2012-12-04 13:56:35

就像..。

代码语言:javascript
运行
复制
^(https?:\/\/)?([0-9a-zA-Z][-\w]*[0-9a-zA-Z\.)+[a-zA-Z]{2,6})\/

我在一本书里看到了这个。这应该说明变量http/https、不允许空白,并且可能在第一个斜杠处停止。

如果我做错了评论。

票数 0
EN

Stack Overflow用户

发布于 2012-12-04 13:57:13

这适用于所有示例,但最后一个示例是:

代码语言:javascript
运行
复制
(?<=//)[^/\\s]+

[^/\\s]是一个否定的字符类,它匹配除/\s以外的每个字符(空格,例如空格、制表符或换行符)

看吧,在Regexr上

不能工作的是最后一行。你想如何决定什么是链接?如果我使第一部分是可选的,它将匹配除和空格.以外的所有字符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13704362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档