首页
学习
活动
专区
圈层
工具
发布

新手Regex
EN

Stack Overflow用户
提问于 2011-12-02 19:53:48
回答 1查看 329关注 0票数 0

我刚开始使用regex,并试图找出在scala中使用的东西。

我试图在一个很长的字符串中识别URL。我到处看看,发现最好的就是

代码语言:javascript
复制
val regex = """https?://([-\w\.]+)+(:\d+)?(/([\w/_\.]*(\?\S+)?)?)?""".r

不过,这还有些不尽如人意的地方,在最后留下“>图像”之类的东西。我正试图弄清楚我的正则表达式到底是什么意思,这样我就可以解剖它,让它在.com/.org/.edu/.whatever.中的.之后碰到一个非单词字符时停止。

我希望有人不会介意解释这个预先形成的regex中有哪些单独的元素,这样我就可以弄清楚发生了什么,并了解更多关于regex的知识。我已经读过一两本教程,发现了一些东西,但是我想我现在想要的东西对我来说是无价的。

我明白了:

  • ?后面的https意味着s是optional
  • ?,后面的元素意味着它们的意思,optional
  • \w似乎意味着单词,characters
  • \d似乎意味着数字,
  • .覆盖大多数字符,除非转义的

我不明白:

我们是如何确定何时转义+

  • what
  • ::转义字符的(我以为它是反斜杠,但这里似乎不起作用?)
  • 如何指定一个需求可以表示一个范围,所以就像word char不仅仅是一个字符,而是1-X字符

无论如何,我希望有人能指导我一个问题,而不是把我推到另一个教程,帮助解释个别元素的出现。我会感激的。

regexlib帮了我一个忙:

代码语言:javascript
复制
val regex = """https?://\w+\.\w+\.\w+[\w/_\.\?=&:]+""".r

我能理解的每一点!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-03 00:34:25

我认为包含“>Image”的主要问题是通过替换匹配查询html字符串的部分来解决的。

代码语言:javascript
复制
(\?\S+)

使用不包括“<>”的内容,如\S所做的那样

代码语言:javascript
复制
(\?[\w=$&.\-^@#~+%]+)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8361830

复制
相关文章

相似问题

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