У меня есть C# список, где много значений, как этотКак удалить выбранный специальный символ из списка
<b>Moon</b>
и я хочу, чтобы удалить <b>
и </b>
.
Я хочу получить результат Moon
.
Как удалить этот тип символов из списка.
У меня есть C# список, где много значений, как этотКак удалить выбранный специальный символ из списка
<b>Moon</b>
и я хочу, чтобы удалить <b>
и </b>
.
Я хочу получить результат Moon
.
Как удалить этот тип символов из списка.
Вы можете использовать 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);
}
Попробуйте это:
var moonHtml = "<b>Moon</b>";
var regex = new Regex("</?(.*)>", RegexOptions.IgnoreCase | RegexOptions.Multiline);
var moon = regex.Replace(moonHtml, string.Empty);
12 секунд быстрее , какой позор;) – Elephantik
Зачем указывать «ноль или один /» '/?', когда косая черта была бы включена в следующую точку? Зачем указывать случай игнорирования, если нет буквенных символов? Лучшая практика? Ну что ж. Ваш код жадный. Если есть строка, подобная 'abc Moon больше текста больше луны' тогда вы просто закончите с "abc". –
НЕ используйте регулярное выражение для разбора html - http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – thecoop
Попробуйте это:
Regex.Replace("<b>Moon</b>", @"\<.+?\>", "")
string noHtml = Regex.Replace(inputWithHtmlTags, "<[^>]+>", "");
Эта программа является очень грубой иллюстрацией регулярного выражения, которое удалит все теги, достаточно гибкое, чтобы также удалить курсив и подчеркивание. Он использует опцию 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();
}
}
}
Ваше сообщение, как представляется, были растерзаны код форматирования, трудно сказать, что вы начали с ... – fyjham