将字符添加到空 html 标记与 c# 和正则表达式

发布时间: 2017/2/22 21:11:14
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要所有空的 HTML 标记在字符串中查找,如︰

<div></div>
<span>test</span>
<a></a>

并向所有空的标记,在该字符串中添加空格或字符︰

<div>something</div>
<span>test</span>
<a>something</a>

我有正则表达式匹配所有空标记,但不知道什么的最好办法已替换标记。

正则表达式︰

<(\w+)(?:\s+\w+="[^"]+(?:"\$[^"]+"[^"]+)?")*>\s*</\1>

解决方法 1:

描述

通过正则表达式处理这可能不是最好的路要走,然而因为可能使用正则表达式,如"不只想安装 HTMLAgilityPack"的原因然后此表达式将︰

  • 找到所有的标记,只需打开标记,接着通过一个结束标记
  • 就可避免许多边缘的情况,使模式匹配在 HTML 中用正则表达式很难

正则表达式︰(<(\w+)(?=\s|>)(?:[^'">=]*|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*>)(<\/\2>)

替换为︰$1~~~NewValue~~~$3

enter image description here

示例

现场演示

示例文本

注意第一行有一些真的很难边缘的情况

<a onmouseover=' str=" <a></a> " ; if ( 6 > 4 ) { funDoSomething(str); } '></a>
<div></div>
<span>test</span>
<a></a>

置换后的文本

<a onmouseover=' str=" <a></a> " ; if ( 6 > 4 ) { funDoSomething(str); } '>~~~NewValue~~~</a>
<div>~~~NewValue~~~</div>
<span>test</span>
<a>~~~NewValue~~~</a>
官方微信
官方QQ群
31647020