0

我想用此链接的实际 HTML 标记替换“文本”包含 http 链接。

这是我的 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/

该链接仅针对第二种情况创建,而不是为第一种情况创建(之前有几个换行符)

4

1 回答 1

0

我建议使用 \b (字边界)而不是换行符/行首检测:

.gsub!(/\b([\w]+?:\/\/[\w]+[^ \"\r\n\t<]*)/i, '<a href="\1">\1</a>')

您不需要替换“http:”,因为您已经匹配协议。

于 2013-04-15T12:04:50.253 回答