您好我需要找到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]*)\%*>))
但它没有用。
我怎能否定这种表达?
答案 0 :(得分: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""
答案 1 :(得分:0)
如果您只需要删除它们,请使用Notepad ++正则表达式查找和替换(选中“。匹配换行符”框):
找到:
(--%?>(?:(?!<%--|<!--).)*?)[^-!~@#$%^&*()+=.,<>|?/{}\[\]\\""';:\w\s]+
替换为:
$1
重复查找和替换,直到找不到更多匹配项。
否则,您可以使用该正则表达式来查找它们并单独处理它们。