Ruby正则表达式匹配url

Kri*_*rma 23 ruby regex url

可能重复:正则
表达式匹配URL
正则表达式删除ruby中网址的网页部分

我正在寻找一个正则表达式来解析文件中的所有url.
我尝试了谷歌搜索后获得的许多正则表达式,但在一个或另一个案例中失败了.我的想法是写一个在begening检查http或https的presense,它将匹配所有内容,直到它看到一个空格.
有任何想法吗 ?
注意:我不需要解析网址但删除文件中的所有网址或至少使其无法读取.

Joh*_*yer 59

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

 require 'uri'
 string.scan(URI.regexp)
Run Code Online (Sandbox Code Playgroud)

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

  • 注意,还有一个URI.extract方法,它基本上解析了字符串中的所有url.很有用. (8认同)
  • URI.regexp似乎匹配不是真正有效的URL的字符串,例如“ http:// x”,甚至只是“ http:”。 (5认同)
  • 这也可以匹配`C:`之类的东西 (3认同)

Mar*_*ers 23

你可以试试这个:

/https?:\/\/[\S]+/
Run Code Online (Sandbox Code Playgroud)

\S意味着任何非空白字符.

(Rubular)

  • 这真的是一个uri正则表达式吗?那只是寻找以http(s)开头的任何字符串......这不是一个uri. (2认同)