2016-03-30 5 views
0

私はScalaのWebページで画像とスクリプトを初めて検索するために正規表現を使用しようとしています。Regexを使用してHTML文字列に ""と "<script ...></script>"を検索する

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

スクリプト:

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

私は本当に、私はよく分からないHTMLコードについて何を知っているか、正規表現を使用していない私が作ってみた表現が

画像ありと一致するように指定するために必要なもの...は、任意の文字または空白にすることができます。これは私がScalaで書いているプログラミング課題のほんの一部であり、Regexを使う必要があります。

+0

問題は何ですか。これらの正規表現が機能しない状況を見つけましたか? (私はいくつか考えることができます) –

+5

また、必要な読書:http://stackoverflow.com/a/1732454/1016716 –

答えて

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> 
関連する問題