私はこのコードを使用して、YouTube URLをクリックすると、アイコンをクリックすると動画を表示するライトボックスが開きます。YouTube Regex replacement C#breaking HTML
ここではC#のコードです:
const string pattern = @"(?:https?:\/\/)?(?:www\.)?(?:(?:(?:youtube.com\/watch\?[^?]*v=|youtu.be\/)([\w\-]+))(?:[^\s?]+)?)";
const string replacement = "<a title='Click to watch the video' rel='nofollow' class='youtube-popup' href='//www.youtube.com/watch?v=$1' data-lity><span class='fa fa-play'></span>Watch</a>";
var rgx = new Regex(pattern);
var result = rgx.Replace(theinput, replacement);
if(result != null && result != "")
{
return result;
}
コードは、ビデオのURLを置き換えるとアイコンを示しているが、また後にHTMLをカット(<p class="tags"></p>
)とそれがclass='tags'>
にカットします(両方の段落タグがされていません現在、そしてそのためには、リンクが含まれてその前の要素に配置します。
私はもちろん、それらの間のテキストとスペースで区切って同じ段落内の2つのリンク、でそれをテストした。
どのようにすることができます正規表現を変更してこの特定の例のHTMLを壊さないようにしましたか?
は非常に見当違いです。なぜHTMLパーサを使用しないのですか? – spender