在" 如何从文本中删除URL? "中,建议使用以下代码:
require 'uri'
#...
schemes_regex = /^(?:#{ URI.scheme_list.keys.join('|') })/i
#...
Run Code Online (Sandbox Code Playgroud)
我试图将其改进为:
schemes_regex = Regexp.union(URI.scheme_list.keys)
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚应该如何指定IGNORECASEoption(i).
我不相信可以像Regexp.union这样传递选项参数。您当然可以在联合操作之后指定它们:
require 'uri'
Regexp.new(Regexp.union(URI.scheme_list.keys).source, Regexp::IGNORECASE)
# => /FTP|HTTP|HTTPS|LDAP|LDAPS|MAILTO/i
Run Code Online (Sandbox Code Playgroud)