2017-12-06 13 views
-1

Hallo Ich muss alle Akzent Wörter finden, die nicht in Kommentaren in JSP-Dateien sind. Mit Beispiel.Regex für finden Sie Akzent Buchstaben, die nicht innerhalb von HTML/Jsp Kommentare sind

Ich muss den Akzentbuchstaben innerhalb des h1 Tags finden, aber nicht die in den Kommentaren.

Bis jetzt hatte ich die Regex, um die Kommentare zu finden, aber ich weiß nicht, wie man diesen Teil negiert. Dies ist die Regex ich hatte:

\<[!%][ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\%*> 

Ich versuche

[ó](?!(\<[!%][ \r\n\t]*(--([^\-]|[\r\n]|-[^\-])*--[ \r\n\t]*)\%*>)) 

aber es hat nicht funktioniert.

Wie könnte ich diesen Ausdruck negieren?

+2

Ich verstehe Ihr vollständiges Problem nicht, aber wenn Sie innerhalb von HTML nach etwas suchen müssen, müssen Sie möglicherweise einen Parser verwenden, um jeden Anwendungsfall abzudecken. –

+0

Was müssen Sie mit ihnen tun, wenn Sie sie finden? Lösche sie? Oder etwas anderes? – Marathon55

+0

Obligatorisch: https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags – vanza

Antwort

0

Es ist nicht möglich, den inneren Text jedes einzelnen HTML-Tags mit einem Regex abzugleichen.

Ich empfehle stattdessen die Verwendung eines Java-HTML-Parsers. jsoup ist ein guter. Weitere Beispiele finden Sie unter jsoup cookbook.

String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>"; 
Document doc = Jsoup.parse(html); 
Element link = doc.select("a").first(); 

String text = doc.body().text(); // "An example link" 
String linkHref = link.attr("href"); // "http://example.com/" 
String linkText = link.text(); // "example"" 
0

Wenn Sie brauchen, um sie einfach zu löschen, verwenden Notepad ++ regex Suchen und Ersetzen (das Kontrollkästchen "passt Newline."):

Suchen nach:

(--%?>(?:(?!<%--|<!--).)*?)[^[email protected]#$%^&*()+=.,<>|?/{}\[\]\\""';:\w\s]+ 

ersetzen mit:

$1 

Wiederholen sie die Find-und-Ersetzen, bis es keine weiteren Spiele finden kann.

Andernfalls können Sie einfach diese Regex verwenden, um sie zu finden und einzeln zu behandeln.

Verwandte Themen