1

我在下面发布了我的 HTML。我想从我的文本框区域中获取名称值。我已经尝试了几个过程,但仍然没有得到任何有效的解决方案。请检查我的 HTML 和代码片段,并告诉我一个可能的解决方案。

当我刷新页面时,名称前缀将始终保持不变。但是,“姓名”区域中的姓氏会改变,但始终包含文字“先生”。作为前 3 位数字。正则表达式为 ([mM]r.\ ) - 如果考虑文字空间,则为四位数。下面是我的表格示例。

<table>
<tr><td><b>Your Name is </b> mr. kamrul</td></tr>
<tr><td><b>your age </b> 12</td></tr>
<tr><td><b>Email:</b>kennethdasma30@gmail.com</td></tr>
<tr><td><b>job title</b> sales man</td></tr>
</table>

如下所示,我正在使用列表框尝试此过程,但我没有收到任何东西。

 HtmlElementCollection bColl = 
 webBrowser1.Document.GetElementsByTagName("table");
        foreach (HtmlElement bEl in bColl)
        {
            if (bEl.GetAttribute("table") != null)
            {
                listBox1.Items.Add(bEl.GetAttribute("table"));
            }
        }

如果有人能给我一个想法,我如何能够在我的列表框中接收浏览器窗口中的所有内容(“先生”+文本),我将不胜感激。另外,如果您能详细解释答案并给出很好的评论,我将不胜感激,因为我也想更详细地理解答案。

4

1 回答 1

0

这是使用正则表达式的一种简单方法,假设您的 html 页面的格式没有改变。

Regex re = new Regex(@"(?<=<tr><td><b>Your\sName\sis\s?</b>\s?)[mM]r\.\s.+?(?=</td></tr>)", RegexOptions.Singleline);
foreach (Match match in re.Matches(webBrowser1.DocumentText))
{
    listBox1.Items.Add(match.Value);
}
于 2015-09-07T18:36:49.423 回答