【问题标题】:Ruby Regular expression to match a url [duplicate]Ruby正则表达式匹配一个url [重复]
【发布时间】:2011-06-10 15:10:24
【问题描述】:

可能的重复:
Regex to match URL
regex to remove the webpage part of a url in ruby

我正在寻找用于解析文件中所有 url 的正则表达式。
我尝试了谷歌搜索后得到的许多正则表达式,但在一种或另一种情况下都失败了。我的想法是写一个在开始时检查 http 或 https 的存在,它会匹配所有内容,直到看到一个空格。
有什么想法吗?
注意:我不需要解析 url,而是从文件中删除所有 url,或者至少使其不可读。

【问题讨论】:

  • P.S.:你在哪里看到 Rails?我删除了这个标签。你知道 Ruby 和 Rails 的区别吗?

标签: ruby regex url


【解决方案1】:

标准 URI 库提供了URI.regexp,这是 url 字符串的正则表达式。

 require 'uri'
 string.scan(URI.regexp)

http://ruby-doc.org/stdlib/libdoc/uri/rdoc/index.html

【讨论】:

  • NB 还有一个 URI.extract 方法,它基本上从字符串中解析所有 url。非常有用。
  • main:Object (NameError) 的未定义局部变量或方法“字符串”您的意思是?字符串
  • URI.regexp 似乎匹配不是真正有效的 URL 的字符串,例如 http://x,甚至只是 http:
  • string 是您创建的变量,@FeloVilches
  • 这也匹配C:之类的东西
【解决方案2】:

你可以试试这个:

/https?:\/\/[\S]+/

\S 表示任何非空白字符。

(Rubular)

【讨论】:

  • 这真的是 uri 正则表达式吗?这只是寻找以 http(s)... 开头的任何字符串,这不是 uri。
  • 它不适用于 url [https://google.com//][ 不是有效的 url 字符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
相关资源
最近更新 更多