【问题标题】:Find a specific string in HTML or JavaScript在 HTML 或 JavaScript 中查找特定字符串
【发布时间】:2012-10-18 15:54:13
【问题描述】:

我想获取一些我正在导航的 html 页面的文本 这是一个程序版本号

"(\d\.\d\.\d\.\d)" The regex code.

我想在 webBrowser1_DocumentCompleted 中执行这个命令

像这样的

字符串 html = webBrowser1.Document.Body.InnerText;

            // scrape keywords
            version = Regex.Match(html, @"""(\\d\\.\\d\\.\\d\\.\\d)""",

RegexOptions.IgnoreCase).Groups[0].Value;

这似乎不起作用。 (我要查找的文本不在正文或指定的任何位置,我只需要抓取整个 html 代码并在那里找到它)

我可以确认这不起作用的是我获取 HTML 文本的方式,我需要替代方式,因为没有主体或任何东西我只需要整个网络浏览器文本并使用正则表达式(我认为正则表达式工作正常)

【问题讨论】:

  • 您是在尝试抓取 IP 地址吗?
  • 程序版本示例:3.4.2.6
  • 看到你有@ 符号,你不需要转义你的斜线(例如@"""(\d\.\d\.\d\.\d )""")
  • 另外,我刚刚注意到,您应该只使用一对引号。 """ 主要是 Python 的东西。
  • @Fodaro 如果我使用一对引号,我会得到所有地方的错误(它不会调试必须使用 2 对)我尝试不带斜线什么我认为代码并没有真正起作用。

标签: c# webbrowser-control


【解决方案1】:

表达式@"(\d\.\d\.\d\.\d)" 应该匹配并捕获整个版本号,无论它在 HTML 中的什么位置。

【讨论】:

    【解决方案2】:

    此 RegEx \d\.? 将匹配此 HTML 中的版本号:

    <html>
    <body>
        <span>3.4.2.6</span>
    </body>
    </html>
    

    请记住,返回了四个匹配项,因此在使用它时,您需要获取整个匹配项而不是单个组。

    所以,你可以这样使用它:

    var version = RegEx.Match(html, @"\d\.?").Value;
    

    另一个更具体的可能正则表达式是((\d\.){3}\d{1})。此 RegEx 将在以下字符串中两次捕获特定版本号,HTML 或 JavaScript,没关系。但它会忽略3.4.2

    <html> 
    <body> 
        <span>3.4.2.6</span> 
        3.4.2
    </body> 
    </html> 
    
    function(){
        var test = "something";
        var version = "3.4.2.6"
    }
    

    要检索网页的文本,WebBrowser 控件当前处于启用状态,请尝试在 DocumentCompleted 事件处理程序中使用以下代码:

    var html = webBrowser1.DocumentText;
    

    【讨论】:

    • 谢谢!如果它不在体内怎么办?它在 HTML 中,但没有
    • @MarkVoidale,这应该不是问题。我只是将它包装在 HTML 中,以证明它周围的东西并不重要。
    • @MarkVoidale,我为您添加了另一个更具体的可能正则表达式。因此,如果 HTML 中的某处有 1.2,它不会选择它。
    • 它甚至不在 HTML 内部,它有很多 JavaScript 代码,没有 HTML 或 Body 的定义,或者任何东西仍然可以工作?而且正则表达式似乎没有抓住它他们有很多数字......
    • +1(两个 RegEx 答案)回答问题并提供替代 RegEx(我也怀疑这与 Mark 的问题无关)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 2015-08-06
    相关资源
    最近更新 更多