2014-07-15 2 views
-3

정규 표현식을 작성하여 패턴 및 정규 표현식을 사용하는 자바에서 사용해야합니다. 정규식은 텍스트 내의 단어가 javascript 태그로 둘러싸여 있는지 테스트해야합니다. >자바와 정규 표현식

**testtesttesttest <script> example of a "text" </script> testtesttesttest** 

나는 단어 "텍스트"< 스크립트>와 </스크립트에 의해 포위되어 있는지 확인해야합니다 예를 들어 , 나는 다음과 같은 텍스트가 있다고 할 수 있습니다.

내가 두 텍스트가 할 텍스트를 분할 한

:

txt1 = testtesttesttest <script> example of a 
txt2 = </script> testtesttesttest 

지금 내가 확인해야합니다

  1. 을 txt1 태그 < 스크립트가 포함되어있는 경우>하지만 태그 < 후이 포함되어 있지 않습니다/script>
  2. txt2에 </script> 태그가 있지만 그 전에 태그가 포함되어 있지 않은 경우 < 스크립트>

정규 표현식을 사용하는 방법이 있습니까? 미리 감사드립니다.

+6

예, 정규식을 사용하여이를 수행하는 방법이 있습니다. – ElGavilan

+3

regex를 사용하여 HTML을 구문 분석하는 것은 결코 좋은 생각이 아닙니다. http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – beny23

+0

정규 표현식으로 HTML 구문 분석하기 표현은 좋은 생각이 아닙니다. – Nadendla

답변

0

먼저 정규 캡션으로 자바 스크립트 태그를 가져올 수 있습니다.

List<String> values = new ArrayList<String>(); 
while (matcher.find()) { 
     values.add(matcher.group(1)); 
} 

값의 목록은 내부의 텍스트를 포함합니다 : 문자열 "텍스트"

insdeOfTag.contains("text"); 

당신이 가진 루프 모든 결과 수 포함되어있는 경우

final Pattern pattern = Pattern.compile("<script>(.+?)</script>"); 
    final Matcher matcher = pattern.matcher("**testtesttesttest <script> example of a \"text\" </script> testtesttesttest**"); 
    matcher.find(); 
    String insdeOfTag= matcher.group(1); 

그렇다면, 당신은 확인하실 수 있습니다 자바 스크립트 태그.

for (String text : values) { 
//you can look for the word "text" on a specific index in here. 
} 
+0

고맙겠지 만, 텍스트가 스크립트 태그 안에 여러 단어 "text"를 포함 할 수 있으며, 제 경우에는 특정 색인에서 "text"라는 단어를 검사해야합니다. 그래서 matcher의 모든 결과를 반복해야합니다 "text"라는 단어가 같은 색인인지 확인하십시오. – user2318955