【发布时间】:2015-03-30 22:29:22
【问题描述】:
我试图在 Clojurescript 的字符串中返回有效的 URL(作为子字符串),我可以使用什么正则表达式?
(re-find #"regex for valid URL" "You can visit www.google.com")
=> "www.google.com"
(re-find #"regex for valid URL" "<b>www.google.com</b>")
=> "www.google.com"
(re-find #"regex for valid URL" "<b>www.google.com</b> and www.yahoo.com")
=> "www.google.com, www.yahoo.com"
【问题讨论】:
-
你如何定义一个有效的 URL?
example.com是有效的,a.b.c.d.e.f.example.co.uk也是有效的。是否支持域名中的 unicode 字符?您需要对 URL 编码字符串、参数和子域的支持吗? -
这不是关于 clojure、jvm 或 clojurescript 的问题。您只是要求有人为您编写正则表达式;他们甚至不确定要使用哪种正则表达式,因为您添加了多个冲突的语言标签。
-
@amalloy 一个正则表达式正是我想要的。
-
@OnlineCop 是的,我并没有说得太清楚,而且我事先没有考虑过。我想我只想到 example.com、www.example.com,但没有什么比编码字符串更高级的了。 a.b.c.d.e.f.example.co.uk 似乎也不错。我正在使用这个
#"^[a-zA-Z0-9\-\.]+\.(com|org|me|io|net|co|edu|uk|ca|de|jp|fr|au|us|ru|ch|it|nl|se|no|es)$" -
goog.string.linkify.findFirstUrl: github.com/google/closure-library/blob/… 鉴于您想要多个,您可能必须在循环和子字符串中调用该函数,直到找不到任何内容。
标签: regex clojure jvm clojurescript