我可以使用什么样的正则表达式在HTML标记附近添加换行符?

aza*_*arp 0 html c# regex

我有以下正则表达式,用于给我HTML字符串中的标签:

<[^>]*>
Run Code Online (Sandbox Code Playgroud)

所以,如果我传入以下内容:

<b> Bold </b> 
Run Code Online (Sandbox Code Playgroud)

然后它会给我:

<b>
</b>
Run Code Online (Sandbox Code Playgroud)

我怎么能让它给我:

<b>
Bold
</b>
Run Code Online (Sandbox Code Playgroud)

更新:

这是另一个了解大局的例子:

如果这是文字:

<b>Bold</b> This is the stuff <i>Italic</i>
Run Code Online (Sandbox Code Playgroud)

然后最终结果如下:

matches[0] = <b>
matches[1] = Bold
matches[2] = </b>
matches[3] = This is the stuff
matches[4] = <i>
matches[5] = Italic 
matches[6] = </i> 
Run Code Online (Sandbox Code Playgroud)

Wel*_*bog 11

不要使用正则表达式来解析HTML. HTML不是常规的,因此正则表达式根本不适合解析它.请改用HTML或XML解析器.网上有很多(HT | X)ML解析器.你用的是哪种语言?

由于语言的复杂性,您无法创建与HTML匹配的正则表达式.正则表达式运行在一类比HTML所属的类更小的语言上.你试图写的任何正则表达式都很难理解和不正确.

使用XPath之类的东西.

编辑:你正在使用C#.幸运的是,您可以使用整个System.Xml命名空间.此外,如果您的HTML不严格,还有其他用于解析HTML的库.

  • @azamsharp:如果您正在使用C#,请查看HTML Agility Pack:http://www.codeplex.com/htmlagilitypack (2认同)