假设一个巨大的文本数据存储在字符串变量中,如
<form method="post" action="../Dialog.aspx" id="ctl00">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUBMGRkcTeMEXjXlquwdmAmnkFVfUymwaaSdYr/CV1hV+mxr6A=" />
</div>
<div id="frm">
<table class="form" border="0" cellpadding="0">
<tr>
<td class="labeltag">Name:</td>
<td class="inputtd">
<input name="ctl01$txtName" type="text" maxlength="100" id="ctl01_txtName" class="inputfield" />
</td>
</tr>
<tr>
<td class="labeltag">Subject:</td>
<td class="inputtd">
<input name="ctl01$txtSubjectject" type="text" maxlength="100" id="ctl01_txtSubjectject" class="inputfield" />
</td>
</tr>
<tr>
<td class="labeltag">Email:</td>
<td class="inputtd">
<input name="ctl01$txtEmail" type="text" maxlength="100" id="ctl01_txtEmail" class="inputfield" />
</td>
</tr>
<tr>
<td class="textfield" colspan="2">
Message:
<div class="messagefield">
<textarea name="ctl01$txtmessage" rows="7" cols="33" id="ctl01_txtmessage" class="message">
</textarea>
</div>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" name="ctl01$btnSubmit" value="Submit" id="ctl01_btnSubmit" class="button" />
<input type="submit" name="ctl01$btnCancel" value="Cancel" id="ctl01_btnCancel" class="button" />
</td>
</tr>
<tr>
<td colspan="2" style="height:10px"></td>
</tr>
<tr>
<td colspan="2">
<div class="bottomline" id="loader">
</div>
</td>
</tr>
</table>
</div>
<div class="aspNetHidden">
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBwKni+1oAuj1kf0MAoWeuckCAqCHyBsC34bOwQQC1cvcnQsC67K1+giML7QhoV19G+plAUvDQ7ade0566ipNfJ+BXR02JW5IIQ==" />
</div>
从上面的数据我只需要提取一个名为“frm”的特殊div。
所以整个div及其内容将被提取出来。我知道这可以用正则表达式完成,但我不知道哪种模式在我的情况下会起作用。
我使用代码提取特定的div,如
Regex search_string = new Regex("<div.*?id=\"frm\".*?>.*</div>");
Match match = search_string.Match(outputToReturn);
string section = match.Groups[0].Value;
但是部分什么都没有....匹配未找到。那怎么做 所以请帮忙。感谢
答案 0 :(得分:0)
看起来您的字符串包含html文档。在这种情况下,你真的应该使用HTML解析器(有很多取决于语言)。 我所知道的是HtmlAgilityPack。