【问题标题】:Regex matches won't separate正则表达式匹配不会分开
【发布时间】:2023-04-02 18:01:01
【问题描述】:

我正在尝试使用 Visual Basic .NET 中的正则表达式在 HTML 中查找表单,但是有不同的表单,我想要具有某些属性的表单。

我想找到这个:

    <form method="post"

虽然还有其他看起来像这样:

    <form method="get"

我已经有了这方面的代码,但是我的代码无法识别第一个表单的结束位置和下一个表单的开始位置,所以我得到了第一个表单开始位置的整个 HTML 脚本

    <form>

最后一个表格结束

    </form>

为了更好地理解我的意思,请查看:http://rubular.com/r/HDU0yVFtIk

【问题讨论】:

  • 只需通过添加? 来使用不贪婪模式:&lt;form.*?&gt;[^*]*?&lt;\/form&gt;。请注意,这不会检测 nested 标记。您可以使用适当的 html 解析器,我在 SO“HTML Agility pack”或类似的地方读到。
  • greedy vs non-greedy 很好的解释。

标签: html regex vb.net forms


【解决方案1】:

您是否尝试使用 post 方法查找表单?

如果是这样,您就快到了。

<form method="post".*>[^*]*<\/form>

http://rubular.com/r/DAi75yjQqU

【讨论】:

【解决方案2】:

您需要通过附加 ? 来使最后一个 * 匹配非贪婪,如下所示:

<form.*>[^*]*?<\/form>

http://rubular.com/r/6cYBTxX85F

【讨论】:

    猜你喜欢
    • 2014-11-24
    • 1970-01-01
    • 2011-06-13
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    相关资源
    最近更新 更多