2

我想获取一串文本并找出是否有图像链接并将其替换为 html 超链接,因此它看起来是嵌入的。

例如:

Look at this image www.xyz/abcd.jpg

当我想显示它时,我想嵌入图像:

look at this image <img src="www.xyz/abcd.jpg" alt="" />

像这样的东西。

4

4 回答 4

1

也许类似于以下内容:

var str = "Look at this image www.xyz/abcd.jpg Look at this image http://www.xyz/abcd.jpg";
var words = str.Split(' ');
for (int i = 0; i < words.Length; i++)
{
    var word = words[i];
    if((word.EndsWith(".png") || word.EndsWith(".jpg")) && 
       (word.StartsWith("http://") || word.StartsWith("www.")))
        words[i] = "<img src=\"" + word + "\" alt=\"\" />";
}
var str2 = String.Join(" ", words);
于 2013-01-17T20:32:00.843 回答
1

可靠地做到这一点非常困难,但你可以尝试这样的事情:

var str = "quick.brown/fox.jpg http://jumps.over.the/lazy/dog.png";
var link = Regex.Replace(
    str,
    "\\b((?:(?:http|https)://)?[a-zA-Z./]+[.](?:jpg|png))\\b",
    "<img src =\"$1\"/>");
Console.WriteLine(link);

.png上面的正则表达式匹配以or结尾的任何内容.jpg,并使用 中的捕获组用标记将Replace其包围。src="..."

这是关于 ideone 的快速演示。输出如下所示:

<img src ="quick.brown/fox.jpg"/> <img src ="http://jumps.over.the/lazy/dog.png"/>
于 2013-01-17T20:32:27.540 回答
1

尝试这样简单的事情:

string l_input = "Look at this image www.xyz/abcd.jpg";

l_input = Regex.Replace( 
    l_input, 
    @"(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?(?<=jpg|png|gif)", 
    "<img src=\"$0\" alt=\"\">", 
    RegexOptions.IgnoreCase
);

// l_input = Look at this image <img src="www.xyz/abcd.jpg" alt="">

URL 模式来自http://net.tutsplus.com/tutorials/other/8-regular-expressions-you-should-know/

于 2013-01-17T20:32:53.347 回答
0

使用以下正则表达式:

Regex.Replace(url, @"(https?:?//?[^'<>]+?\.(?:jpg|jpeg|gif|png))", "<img src=\"$0\" alt=\"\">");
于 2013-01-17T20:35:56.373 回答