テキストの文字列を取得して、画像へのリンクがあるかどうかを確認し、それをhtmlハイパーリンクに置き換えて、埋め込まれているように見せたいと思います。
例えば:
Look at this image www.xyz/abcd.jpg
それを表示したいときは、画像を埋め込みたいです:
look at this image <img src="www.xyz/abcd.jpg" alt="" />
このようなもの。
おそらく次のようなものです:
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);
次のような簡単なことを試してください。
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/から取得されます
確実に行うのは非常に困難ですが、次のようなことを試すことができます。
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
またはで終わるものすべてに一致し、 のキャプチャ グループを.jpg
使用してマークアップで囲みます。Replace
src="..."
これはideoneの簡単なデモです。出力は次のようになります。
<img src ="quick.brown/fox.jpg"/> <img src ="http://jumps.over.the/lazy/dog.png"/>
次の正規表現を使用します。
Regex.Replace(url, @"(https?:?//?[^'<>]+?\.(?:jpg|jpeg|gif|png))", "<img src=\"$0\" alt=\"\">");