Задача проста, мой друг ... звучит как интересный босс.
void Main()
{
string test = "<html>wowzers description: none <div>description:a1fj391</div></html>";
string result = getFirstChars(test, 15);
Console.WriteLine(result);
//result: wowzers descrip
}
static Regex MyRegex = new Regex(
"(?<tag></?\\s*\\w+\\s*>*)",
RegexOptions.Compiled);
static string getFirstChars(string html, int count)
{
string nonTagText = MyRegex.Replace(html,"");
return nonTagText.Substring(0, count);
}
если вы хотите сохранить теги ... тогда вы можете сделать это:
void Main()
{
string test = "<html><b>wowzers</b> description: none <div>description:a1fj391</div></html>";
string result = getFirstChars(test, 15);
Console.WriteLine(result);
//result: <html><b>wowzers</b> descrip
}
static Regex MyRegex = new Regex(
"(?<tag></?\\s*\\w+\\s*>)(?<content>[^<]*)",
RegexOptions.Compiled);
static string getFirstChars(string html, int count)
{
int totalCount = 0;
int contentCount = 0;
foreach(Match match in MyRegex.Matches(html))
{
contentCount += match.Groups["content"].Length;
totalCount += match.Length;
if(contentCount >= count)
{
totalCount -= contentCount - count;
break;
}
}
return html.Substring(0, totalCount);
}