Regex Webbrowser表innertext numaric数据如何在文本框中显示?

Regex Webbrowser表innertext numaric数据如何在文本框中显示?,regex,split,innerhtml,regex-greedy,htmlelements,Regex,Split,Innerhtml,Regex Greedy,Htmlelements,我已经在下面发布了我的HTML。我想从文本框区域中获取数字值。我已经尝试了几个过程,但仍然没有得到任何有效的解决方案。请检查我的HTML和代码片段,并向我展示一个可能的解决方案 刷新页面时,数字前缀将始终保持不变。但是,“数字”区域内的最后一个数字将发生变化,但始终包含“206”作为前3位数字。下面是我的表格示例 <table align="center" width="500" border="0"> <tr><td align="center" height="

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

刷新页面时,数字前缀将始终保持不变。但是,“数字”区域内的最后一个数字将发生变化,但始终包含“206”作为前3位数字。下面是我的表格示例

<table align="center" width="500" border="0">
<tr><td align="center" height="30" style="font-size:medium">See your job Details, adriankdins2f3dd@hotmail.com.</td></tr>
<tr><td align="center" style="color:#CC3300"><b>Your Job Information   is:</b></td></tr>
<tr><td align="center">
<table>
<tr><td><b>Phone Number:</b> 206-600-9159</td></tr>
<tr><td><b>Your AGe:</b> 25</td></tr>
<tr><td><b>Email:</b> adriankdins2f3dd@hotmail.com</td></tr>
<tr><td><b>Job Title</b> cleaner </td></tr>
</table>
</td>
</tr>
<tr><td align="center" valign="middle" height="25">Jobinstruction</td>   
</tr>
<tr><td>
</td></tr>
<tr><td
</td></tr> 
</table>

查看您的工作详细信息,adriankdins2f3dd@hotmail.com.
您的工作信息是:
电话号码:206-600-9159
你的年龄:25岁
电邮:adriankdins2f3dd@hotmail.com
职称清洁工
作业指导

您可以使用HtmlAgilityPack和XPath查询来完成此操作:

using HtmlAgilityPack;
...

HtmlDocument html = new HtmlDocument();
html.LoadHtml(htmlText);
HtmlNode doc = html.DocumentNode;

HtmlNode node = doc.SelectSingleNode("//table/tr/td/b[starts-with(.,'Phone Number:')]/following::text()[1]");

if (node != null)
{
    Console.WriteLine(node.OuterHtml);
}

您不需要使用任何外部库,因为您使用的是WebBrowser组件。您需要访问正确的表(在大多数情况下,表具有唯一的id,或者您可以通过使用
GetElementsByTagName
获得的结果数组中的索引来访问它)

您可以循环浏览所有表格、行和单元格,检查
InnerText
是否以
电话号码开头:
,然后获取所需的值

webBrowser1.Navigate(@"C:\tmp2.html");
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
    Application.DoEvents();
HtmlElementCollection bColl = webBrowser1.Document.GetElementsByTagName("td");
var TelNum = string.Empty;
var PersonName = string.Empty;
if (bColl != null && bColl.Count > 0)
{
    foreach (HtmlElement td in bColl)
    {
        if (!String.IsNullOrEmpty(td.InnerText) && td.InnerText.StartsWith("Phone Number:"))
            TelNum = td.InnerText.Substring(14).Trim();
        if (!String.IsNullOrEmpty(td.InnerText) && td.InnerText.StartsWith("Your Name is "))
            PersonName = td.InnerText.Substring(13).Trim();
    }
}

我使用了
Trim()
以防有人在那里留下多余的空间。

我使用的是windows应用程序,即c语言中的浏览器应用程序#我再次更新了我的代码请检查我也在使用windows应用程序表单,所以需要windows应用程序代码。您需要提取什么文本<代码>206-425-2541
是文档中的第一个表吗?是的,我只想在我的文本框或列表框中输入这个数字好,请看我的答案。不,先生,再次可用后,我再次更新了我的代码,请检查我希望在我的文本框中显示号码,也请检查你的代码我尝试相同的,包括文本框,但不显示任何内容,没有找到电话号码显示错误。我确信你的想法100%好,但我需要再次帮助,为什么我没有得到任何东西!!!请分享整个HTML文件,并解释你不能用它做什么。我也更新了我的答案,现在,我只是在循环
td
元素。
webBrowser1.Navigate(@"C:\tmp2.html");
while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
    Application.DoEvents();
HtmlElementCollection bColl = webBrowser1.Document.GetElementsByTagName("td");
var TelNum = string.Empty;
var PersonName = string.Empty;
if (bColl != null && bColl.Count > 0)
{
    foreach (HtmlElement td in bColl)
    {
        if (!String.IsNullOrEmpty(td.InnerText) && td.InnerText.StartsWith("Phone Number:"))
            TelNum = td.InnerText.Substring(14).Trim();
        if (!String.IsNullOrEmpty(td.InnerText) && td.InnerText.StartsWith("Your Name is "))
            PersonName = td.InnerText.Substring(13).Trim();
    }
}