Как написать регулярное выражение, чтобы остановить заменить & NBSP; символ между тегами span или div?
Я хочу изменить свое нижнее регулярное выражение таким образом, чтобы оно не заменяло / не удаляло
Если там есть
найдено на странице aspx. затем пропустите для замены на пустой символ
Ниже выражение работает нормально, но единственная проблема заключается в том, что он удаляет все
персонаж.
В моем коде aspx я написал <span class='clscode'> </span>
в этом типе тега внутренний текст, который я написал
персонаж.
Вот мой код C#.
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Linq;
using System.Text.RegularExpressions;
public partial class TestPage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/// my code
}
private static readonly Regex t = new Regex(@">\s+<", RegexOptions.Compiled);
private static readonly Regex lb = new Regex(@"\n\s+", RegexOptions.Compiled);
protected override void Render(HtmlTextWriter writer)
{
using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();
html = t.Replace(html, "> <");
html = lb.Replace(html, string.Empty);
writer.Write(html.Trim());
}
}
}
Мне нужен вывод ниже типа. например: моя страница имеет так много Это тестовый пример
<div id="dvtest"> <space> <space> <space>
<span> </span><space> <space>
<div id='test2'> sample text </div></div>
//... как эти теги. Мне нужен вывод, как это.
<div id="dvtest"><span> </span><div id='test2'>sample text </div></div>
Примечание: здесь <space>
означает невидимый символ пробела
2 ответа
Попробуй вот так
Если вы не можете использовать решение, ориентированное на анализатор HTML, для фильтрации тегов, вот простое регулярное выражение для этого.
string noHTML = Regex.Replace(inputHTML, @"\n$", "").Trim();
protected override void Render(HtmlTextWriter writer)
{
using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
string re1 = "( )";
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();
Regex r = new Regex(re1, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Match m = r.Match(html);
if (m.Success)
{
String c1 = m.Groups[1].ToString();
html = html.Replace(c1.ToString(), "");
writer.Write(html);
// Console.Write("(" + c1.ToString() + ")" + "\n");
}
}
}