使用Regex在HTML字符串中查找“<img ...=""/>”和“<script ... =”“> </script>”

时间:2016-03-30 18:59:42

标签: html regex scala

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

图片:

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

脚本:

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

我对HTML代码或使用正则表达式一无所知所以我不确定我需要什么来指定它应该匹配<img .../> ...可以是任何数量的site.com/controller/change_language/{language} 字符或空格。这只是我在Scala编写的编程作业的一小部分,我们必须使用正则表达式。

1 个答案:

答案 0 :(得分:0)

<img[^>]*>等正则表达式与<img..........>匹配。

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

(可以在捕获( )中添加回来\转义,并使用正则表达式定界/ /代码围绕。我删除它们以关注正则表达式本身,没有leaning toothpick syndrome和其他噪音。)

虽然这些比你提出的更好,但在许多情况下它们仍会破裂。 RegEx 旨在解析HTML。

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