在HTML中为不完整的输入元素添加结束标记

时间:2013-08-18 23:07:47

标签: html regex vb.net input append

我的代码如下:

<form>
    <input name="whatever">
    <input name="whatever2">
</form>

为了使Visual Basic .NET中的XML解析器能够解析它,我需要关闭每个输入标记。像这样:

<input></input>

如何将此附加到我拥有的HTML字符串中的每个输入?使用Regex?

Dim Method As New Regex("<input.*?>", RegexOptions.IgnoreCase)
For each Item as String in Method.Results("<form><input><input></form>")
    'Somehow append </input>
Next

1 个答案:

答案 0 :(得分:2)

您可以使用非常简单的正则表达式来修复输入。您可以使用多种替换模式,具体取决于您希望元素的格式如何。

示例代码

Function FixInputElement(htmlMarkup As String)
    Return Regex.Replace(htmlMarkup, "(<input[^>]*)(>)", "$1/$2", RegexOptions.IgnoreCase)
End Function

替换模式

Replacement     Input              Output
$1/$2           <input id="in1">   <input id="in1"/>
$1 /$2          <input id="in2">   <input id="in2" />
$1/$2</input>   <input id="in3">   <input id="in3"></input>

添加负面后瞻

如果某些输入有可能正确关闭,您可以添加负面的背后隐藏

(<input[^>]*)((?<!/)>)

具有否定后瞻的输出

Input                         Output
<input id="in1">              <input id="in1" />
<input id="in2">              <input id="in2" />
<input id="in3-dontfix" />    <input id="in3-dontfix" />