2016-03-30 15 views
0

Ich versuche Reguläre Ausdrücke zum ersten Mal zu verwenden, um nach Bildern und Skripten in Webseiten in Scala zu suchen. Die Ausdrücke, die ich habe kommen mit sindMit Regex "<img .../>" und "<script ...></script>" in HTML-Zeichenfolge

Bilder:

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

Scripts:

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

Ich weiß nicht wirklich etwas über HTML-Code oder mit Regex so bin ich nicht sicher Was ich brauche, um anzugeben, dass es <img .../> entsprechen sollte, wobei ... eine beliebige Anzahl von Zeichen oder Leerzeichen sein könnte. Dies ist nur ein kleiner Teil einer Programmieraufgabe, die ich in Scala schreibe, und wir müssen Regex verwenden.

+0

Was ist die Frage? Haben Sie Situationen gefunden, in denen diese Regex nicht funktionieren? (Ich denke an ein paar.) –

+5

Auch erforderlich lesen: http://StackOverflow.com/A/1732454/1016716 –

Antwort

0

Ein Regex wie <img[^>]*> würde <img..........> übereinstimmen.

Ein Regex wie <script.*?</script> würde mit einer einzelnen <script...>...</script> Instanz übereinstimmen. Das ? ist notwendig, um zu verhindern, dass es vom ersten bis zum letzten <script...> Tag zum letzten </script> Tag passt.

(Fühlen Sie sich frei in der Erfassung () ‚s zurück zu addieren, die \ entweicht, und umgeben mit der Regex abgrenzt / / Token. Ich entfernte sie auf den regulären Ausdrücken konzentrieren sich, ohne die leaning toothpick syndrome und andere Geräusche.)

Während diese besser sind als die, die Sie vorgeschlagen haben, werden sie in vielen Fällen immer noch brechen. RegEx ist nicht entworfen, um HTML zu analysieren.

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