使用正则表达式的Asp.NETC#Html字符串预览

使用正则表达式的Asp.NETC#Html字符串预览,c#,regex,asp.net-mvc-2,string,C#,Regex,Asp.net Mvc 2,String,我得到了一个字符串预览类,它从数据库中获取一个Html字符串,或者只是简单的旧Html字符串,并输出一个x字符的预览。。。。 现在我的老板让我把它转换成正则表达式,而我已经有一段时间没有做到这一点了。如果有人能帮我的话 我最关心的部分是在计数中不包含标记的情况下获得x个字符,但也不会删除标记 如果有人有我读过的东西或codeplex之类的东西,我会很高兴的。任务很简单,我的朋友。。。听起来像个有趣的老板 void Main() { string test = "<html>w

我得到了一个字符串预览类,它从数据库中获取一个Html字符串,或者只是简单的旧Html字符串,并输出一个x字符的预览。。。。 现在我的老板让我把它转换成正则表达式,而我已经有一段时间没有做到这一点了。如果有人能帮我的话

我最关心的部分是在计数中不包含标记的情况下获得x个字符,但也不会删除标记


如果有人有我读过的东西或codeplex之类的东西,我会很高兴的。

任务很简单,我的朋友。。。听起来像个有趣的老板

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()
{
字符串测试=“wowzers描述:无描述:a1fj391”;
字符串结果=getFirstChars(测试,15);
控制台写入线(结果);
//结果:wowzers描述
}
静态正则表达式MyRegex=新正则表达式(
"(?*)",
RegexOptions.Compiled);
静态字符串getFirstChars(字符串html,整数计数)
{
字符串nonTagText=MyRegex.Replace(html,“”);
返回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);
}
void Main()
{
字符串测试=“wowzers描述:无描述:a1fj391”;
字符串结果=getFirstChars(测试,15);
控制台写入线(结果);
//结果:wowzers描述
}
静态正则表达式MyRegex=新正则表达式(

"(?)(?[^为什么要使用正则表达式?当前的实现是否存在问题?请选择其他上司。使用正则表达式无法完成此任务。您可以向您的上司提出以下建议:我相信他会喜欢它,并让他在下次要求他人使用正则表达式解析HTML时三思而后行。+1用于发布义务人用正则表达式解析html。我找不到:-)我从来没有一个老板能理解html标记、正则表达式或如何计算字符串中的字符。我希望有一个像你这样精通技术的老板!但是如果你想“保留标记”“在输出中,更复杂的是,您需要创建‘标记组’,并且只包括使其进入字符计数的标记。