在“How do I removing URLs from text?”中,建议使用以下代码:
require 'uri'
#...
schemes_regex = /^(?:#{ URI.scheme_list.keys.join('|') })/i
#...
我试图将其改进为:
schemes_regex = Regexp.union(URI.scheme_list.keys)
但我无法弄清楚应该如何指定IGNORECASE
选项(i
)。
答案 0 :(得分:4)
我不相信可以将选项参数传递给Regexp.union
。你当然可以在联合操作后指定它们:
require 'uri'
Regexp.new(Regexp.union(URI.scheme_list.keys).source, Regexp::IGNORECASE)
# => /FTP|HTTP|HTTPS|LDAP|LDAPS|MAILTO/i
答案 1 :(得分:3)
schemes_regex = Regexp.union(
*URI.scheme_list.keys
.map{|s| Regexp.new(s, Regexp::IGNORECASE)}
)
答案 2 :(得分:2)
Regexp.union(*URI.scheme_list.keys.map {|s| /\A#{s}/i })