C#将项目符号转换为HTML无序LIst

Dze*_*jms 2 c# regex

需要用更大的字符串中的HTML ul&li标签替换文本子弹字符"•".列表始终位于字符串的末尾.

我需要转换这个:

"The 2008 <strong>Ford F-350</strong> Super Duty XL is powered by a 5.four-liter V8 engine combined with a six-speed manual transmission. A 6.4-liter diesel and 6.8-liter gasoline-powered V10 are also available. Automatics are optional. The Super Duty XL is available in regular, Crew Cab and Super Crew styles and in two- and four-wheel drive.  • ABS is standard for safe, secure stopping power • The front seat is full bench, with recline • Optional packages include a power group and other groups to fit your various needs" 
Run Code Online (Sandbox Code Playgroud)

还有这个:

"The 2008 <strong>Ford F-350</strong> Super Duty XLT is powered by a 5.4-liter V8 engine combined with a six-speed manual transmission. A 6.4-liter Power Stroke diesel engine and a 6.8-liter V10 are also available, as is a five-speed automatic transmission. The XLT contains all XL content plus chrome exterior trim, premium sound and upgraded seating. • Premium audio includes AM/FM stereo, single-CD/MP3 player and four speakers • Front and rear bumpers and grille surround are chrome for enhanced appearance • Remote keyless entry and perimeter antitheft alarm are standard for increased safety and security "
Run Code Online (Sandbox Code Playgroud)

对此:

"The 2008 &lt;strong&gt;Ford F-350&lt;/strong&gt; Super Duty XL is powered by a 5.four-liter V8 engine combined with a six-speed manual transmission. A 6.4-liter diesel and 6.8-liter gasoline-powered V10 are also available. Automatics are optional. The Super Duty XL is available in regular, Crew Cab and Super Crew styles and in two- and four-wheel drive.  <ul><li>ABS is standard for safe, secure stopping power</li><li>The front seat is full bench, with recline</li><li>Optional packages include a power group and other groups to fit your various needs</li></ul>"
Run Code Online (Sandbox Code Playgroud)

还有这个:

"The 2008 &lt;strong&gt;Ford F-350&lt;/strong&gt; Super Duty XLT is powered by a 5.4-liter V8 engine combined with a six-speed manual transmission. A 6.4-liter Power Stroke diesel engine and a 6.8-liter V10 are also available, as is a five-speed automatic transmission. The XLT contains all XL content plus chrome exterior trim, premium sound and upgraded seating. <ul><li>Premium audio includes AM/FM stereo, single-CD/MP3 player and four speakers</li><li>Front and rear bumpers and grille surround are chrome for enhanced appearance</li><li>Remote keyless entry and perimeter antitheft alarm are standard for increased safety and security</li></ul>"
Run Code Online (Sandbox Code Playgroud)

Jef*_*tes 6

您不需要使用正则表达式,您可以使用该string.Split方法在字符上拆分字符串,然后使用a在循环中构建HTML StringBuilder.

像下面这样的东西应该工作(这没有完全测试 - 只是粗略刺伤它):

// Here original represents the string you're converting from.
string[] splits = original.Split(
    new[] { "•" },
    StringSplitOptions.RemoveEmptyEntries);

var htmlBuilder = new StringBuilder();
for (int i = 0; i < splits.Length; i++)
{
    if (i != 0)
    {
        if (i == 1)
        {
            htmlBuilder.Append("<ul><li>");
        }
        else if (i != splits.Length - 1)
        {
            htmlBuilder.Append("</li><li>");
        }
    }

    htmlBuilder.Append(splits[i]);
}
htmlBuilder.Append("</li><ul>");
Run Code Online (Sandbox Code Playgroud)

  • 请先定义? (3认同)
  • @Dzejms:我的回答很简洁.我没有抱怨 - 只是觉得好笑.:) Tomalak的答案在构建HTML方面简洁明了 - 我的初步答案解释了如何能够做到这一点.总之,我们都有一个完整的答案,我把它放在一些代码中.我希望我们可以在大多数时间关闭互联网. (2认同)

Tom*_*lak 5

不需要正则表达式.

  1. 附加"</li></ul>"到字符串
  2. 替换"•""<ul><li>"(仅首次出现)
  3. 替换"•""</li><li>"(所有剩余的事件)