2017-12-06 3 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]*)\%*>)) 

을 시도하지만 작동하지 않았다.

어떻게 그 표현을 부정 할 수 있습니까?

+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을 참조하십시오.

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

하는 교체 :

을 찾으 :

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

당신은 단순히 삭제해야하는 경우는, (". 줄 바꿈과 일치"에 대한 확인란을 선택) 교체 찾기 및 메모장 + + 정규식을 사용하여 다음을 포함합니다 :

$1 

더 이상 일치하는 항목을 찾을 수 없을 때까지 찾기 및 바꾸기를 반복하십시오.

그렇지 않으면 정규식을 사용하여 해당 정규식을 찾고 개별적으로 처리 할 수 ​​있습니다.

관련 문제