我是regex的新手,试图找出一些在scala中使用的东西。
我试图在一个很长的字符串中识别url。我找了很多地方,我找到的最好的是
val regex = """https?://([-w.]+)+(:d+)?(/([w/_.]*(?S+)?)?)?""".r
这留下了一些东西需要,但留下的东西,如">图像"在最后。我试图弄清楚我的正则表达式意味着什么,所以我可以剖析它,并使它停止,当它击中.com
/.org
/.edu
/.whatever
中的.
之后的非单词字符。
我希望有人不介意解释这个预形成的regex中的各个元素,以便我可以弄清楚发生了什么并了解更多关于regex的信息。我读了一两个教程,发现了一些东西,但我认为我所要求的对我来说是非常宝贵的。
我明白了:
- https后面的
?
表示s是可选的 - 元素后的
?
表示它们是可选的 -
w
似乎是指文字字符 -
d
似乎是指数字 -
.
覆盖大部分字符,除非转义
我不明白:
- 我们如何计算何时逃离
-
:
如何工作或+
- 什么转义字符是真正的(我认为这是一个反斜杠,但这似乎不工作在这里?)
- 如何指定一个要求可以为一个范围的字,所以像字字符不只是一个字符,而是1-X字符
无论如何,我希望有人可以指导我的问题,而不是把我推到另一个教程,帮助解释个别元素,因为他们出现。我很感激。
regexlib
很有帮助,并得到了我:
val regex = """https?://w+.w+.w+[w/_.?=&:]+""".r
每一点我都明白!
我认为你的主要问题与">图像被包含是通过替换匹配的部分查询html字符串
(?S+)
不包含" <</p>
(?[w=$&.-^@#~+%]+)