我想替换"文字"包含http链接以及此链接的实际HTML标记。
这是我的Ruby代码
url_check = Regexp.new( '(\A|[\n ])([\w]+?://[\w]+[^ \"\r\n\t<]*)', Regexp::MULTILINE | Regexp::IGNORECASE )
self.gsub!(url_check, '\1<a href="http://\2">\2</a>')
to_s
这是一个测试用例:
This is entrance page for the service (using HTML):
http://foobar.org/resources?format=html
Let us pick the "contributions" namespace: http://foobar.org/
仅为第二种情况创建链接,但不为第一种情况创建链接(之前有几个换行符)
答案 0 :(得分:0)
我建议使用\ b(字边界)代替换行/开始检测:
.gsub!(/\b([\w]+?:\/\/[\w]+[^ \"\r\n\t<]*)/i, '<a href="\1">\1</a>')
您不需要替换“http:”,因为您已经匹配协议。