2009-11-27 2 views
0

У меня есть C# список, где много значений, как этотКак удалить выбранный специальный символ из списка

<b>Moon</b>

и я хочу, чтобы удалить <b> и </b>.

Я хочу получить результат Moon.

Как удалить этот тип символов из списка.

+0

Ваше сообщение, как представляется, были растерзаны код форматирования, трудно сказать, что вы начали с ... – fyjham

ответ

5

Вы можете использовать XDocument удалить XML-теги:

string StripXmlTags(string xml) 
{ 
    XDocument doc = XDocument.Parse(xml); 
    return doc.Root.Value; 
} 

Пример:

[Test] 
public void Test() 
{ 
    string xml = "<root><b>nice </b><c>node</c><d><e> is here</e></d></root>"; 
    string result = StripXmlTags(xml); 

    Assert.AreEqual("nice node is here", result); 
} 
1

Попробуйте это:

var moonHtml = "<b>Moon</b>"; 
var regex = new Regex("</?(.*)>", RegexOptions.IgnoreCase | RegexOptions.Multiline); 
var moon = regex.Replace(moonHtml, string.Empty); 
+0

12 секунд быстрее , какой позор;) – Elephantik

+1

Зачем указывать «ноль или один /» '/?', когда косая черта была бы включена в следующую точку? Зачем указывать случай игнорирования, если нет буквенных символов? Лучшая практика? Ну что ж. Ваш код жадный. Если есть строка, подобная 'abc Moon больше текста больше луны' тогда вы просто закончите с "abc". –

+1

НЕ используйте регулярное выражение для разбора html - http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – thecoop

0
string noHtml = Regex.Replace(inputWithHtmlTags, "<[^>]+>", ""); 
0

Эта программа является очень грубой иллюстрацией регулярного выражения, которое удалит все теги, достаточно гибкое, чтобы также удалить курсив и подчеркивание. Он использует опцию IgnoreCase для защиты от <b> или <B>, находящихся на входе, и выполняет поиск по нескольким строкам. Результатом запуска этого будет «Человек на Луне». Я использую .*? означает ноль или больше, чтобы поймать случаи пустые скобки, такие как <>

using System; 
using System.Text.RegularExpressions; 

namespace ConsoleApplication3 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var input = "<b>The</b> <i>Man</i> on the <U><B>Moon</B></U>"; 

      var regex = new Regex("<.*?>", RegexOptions.IgnoreCase | RegexOptions.Multiline); 

      var output = regex.Replace(input, string.Empty); 

      Console.WriteLine(output); 
      Console.ReadLine(); 
     } 
    } 

}

Смежные вопросы