【问题标题】:Using Regex to find "<img .../>" and "<script ...> </script>" in HTML string使用正则表达式在 HTML 字符串中查找“<img .../>”和“<script ...> </script>”
【发布时间】:2016-07-18 23:10:28
【问题描述】:

我第一次尝试使用正则表达式在 Scala 的网页中搜索图像和脚本。我想出的表达方式是

图片:

/(<img\S+\s+\/>)+/

脚本:

/(<script\s+\S+><\/script>)+/

我对 HTML 代码或使用正则表达式一无所知,所以我不确定我需要什么才能指定它应该与 &lt;img .../&gt; 匹配,其中 ... 可以是任意数量的字符或空格。这只是我用 Scala 编写的编程作业的一小部分,我们必须使用正则表达式。

【问题讨论】:

标签: html regex scala


【解决方案1】:

&lt;img[^&gt;]*&gt; 这样的正则表达式将匹配&lt;img..........&gt;

&lt;script.*?&lt;/script&gt; 这样的正则表达式将匹配单个&lt;script...&gt;...&lt;/script&gt; 实例。 ? 是必要的,以防止它匹配从第一个 &lt;script...&gt; 标记到最后一个 &lt;/script&gt; 标记的所有内容。

(请随意添加回捕获( )'s,\ 转义,并用正则表达式分隔/ / 标记包围。我删除它们以专注于正则表达式本身,没有@987654321 @ 和其他噪音。)

虽然这些比您建议的要好,但在许多情况下它们仍然会损坏。 RegEx 不是旨在解析 HTML。

<script>
  <!-- This "</script>" doesn't end the script, but fools the RegEx -->
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多