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