2017-12-06 10 views
-1

こんにちは私は、jspファイル内のコメント内にないすべてのアクセントワードを見つける必要があります。 例です。html/jspコメント内にないアクセント文字を検索するための正規表現

<%--This jsp comment have accents áóéí--%> 
<html> 
<!--This html comment have accents áóéí--> 


<h1>This text have accents áóí</h1> 
<html> 

h1タグ内のアクセント文字を見つける必要がありますが、コメント内にはアクセント文字はありません。

これまではコメントを見つけるための正規表現がありましたが、その部分を否定する方法はわかりません。 これは私が持っていた正規表現です:

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

は私が

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

を試してみてくださいしかし、それは作品なかったです。

どのように私はそのexpresionを否定することができますか?

+2

完全な問題は分かりませんが、HTML内で何かを検索する必要がある場合は、すべてのユースケースをカバーするためにパーサーを使用する必要があります。 –

+0

あなたはそれらを見つけるときに何をする必要がありますか?削除しますか?または、他の何か? – Marathon55

+0

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

答えて

0

各HTMLタグの内部テキストと正規表現を一致させることは現実的ではありません。

代わりにJava HTMLパーサーを使用することをおすすめします。 jsoupは良いものです。より多くの例については、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

あなたは、単にそれらを削除する必要がある場合は、検索および置換メモ帳++正規表現を使用する(ためのボックスにチェックを入れ、 "改行にマッチします。"):

何を検索:

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

を交換してください

$1 

これ以上一致するものが見つからなくなるまで、その検索と置換を繰り返します。

それ以外の場合は、正規表現を使用してそれらを検索し、個別に処理できます。

関連する問題