2012-01-02 4 views
1

내가 이것을 사용하는 알고있다 :교체 사용() 또는 완전히 대체하기()

public String RemoveTag(String html){ 
    html = html.replaceAll("\\<.*?>",""); 
    html = html.replaceAll("&nbsp;",""); 
    html = html.replaceAll("&amp;",""); 
    return html; 
} 

이 HTML 문자열 내에서 모든 태그를 제거합니다. 그러나 질문은 어떻게 사이에 야생 문자를 얻을 수있다 <.*?>. 누군가가 String에서 야생 문자를 가져 오는 방법에 대한 자세한 설명을 줄 수 있습니까?

이 주된 이유는 "@에서 시작점과 끝 점이있는"이 문자를 가지고 있으며 "@""}" 사이의 모든 것을 없애기 위해서입니다.

+0

나는 당신이 무엇을 요구하고 있는지 완전히 모릅니다. 짧은 예제 입력과 원하는 출력 예제를 제공 할 수 있습니까? –

+0

정규 표현식이 어떻게 뒤에서 작동하는지 묻고 있습니까? – amit

+0

와일드 카드 문자가 자동으로 삽입되거나 u r 묻는 것은 무엇입니까? –

답변

2

완전히 대체하기에 첫 번째 매개 변수 (...)를 읽어보십시오

는 정규식 문자열입니다. 귀하의 예에서 .*?은 어떤 것과도 일치하는 부분입니다.

String exampleText = "Start @some text} finish."; 
exampleText.replaceAll("@(.*?)\\}", "@}"); 
System.out.println(exampleText); // prints "Start @} finish." 

공지 사항 같은 패턴 : .*? 당신이 "@"와 "}"사이의 모든 것을 제거하는 정규 표현식을 원한다면, 당신은 같은 것을 사용합니다. 여기에서 선택적인 괄호는 그룹화에 사용됩니다. }은 정규식 내에서 특별한 의미를 가질 수 있기 때문에 백 슬래시로 이스케이프 처리됩니다.

자바의 정규식 지원에 대한 자세한 내용은 Pattern class을 참조하십시오.

+0

빠른 질문 : \\ 무엇입니까? – wesdfgfgd

+0

@Akyllite :'''를 깨기위한 것입니다, 그래서 정규 표현식은 '특별한 의미'가없는 단순한 문자처럼 받아 들일 수 있습니다. 그러나'}'에 대해서는 앞의' {'당신의 정규 표현식에서. – amit

+0

두 사람에게 허용 된 답변을 추가하고 싶지만 감사 할 수는 없지만 감사합니다. ( – wesdfgfgd

2

정규 표현식은 finite automaton을 빌드하여 구현할 수 있습니다. 모든 정규 표현식에는 유한 결정 오토 마톤이 있고 그 반대의 경우도 마찬가지입니다.

당신이 찾고있는 것에 대한 정규 표현식은 "" 대신 "@}"으로 바꿀 수 있습니다. 이러한 문자를 유지하려면 @.*?}입니다. 그것은 다음과 같을 것입니다 : s.replaceAll("@.*?}", "@}") [s은 당신의 문자열입니다].

} 특수 문자는 앞의 {을 볼 수 없을 때 패턴 인식기에서 무시해야하지만 정규 표현식 "@. *? \}"이 필요할 수 있습니다. 안전한쪽에 있으려면 : @WayneBaylor가 게시 한대로 "@.*?\\}"가 어느 쪽이든 작동해야합니다. 당신은 more on regular expressions

+0

wikipedia에 대한 설명 주셔서 감사합니다. 나는 많이 배웠다. 그러나 코드를 테스트 할 때 : "html = html.replaceAll ("@. *?} "," ");" 그것은 나에게이 오류를주었습니다 : ComponentInfo {epub.test/epub.test.EpubReadActivity} 액티비티를 시작할 수 없습니다 : java.util.regex.PatternSyntaxException : 구문 오류 U_REGEX_RULE_SYNTAX 인덱스 5 근처 : @. *?} – wesdfgfgd

+0

@Akyllite 당신이 시도한 의견을 말해 주시겠습니까? 나는 다시 만들려고 노력할 것이다 ... – amit

+0

웨인은 "exampleText.replaceAll ("@ (. *?) \\} ","@} ");" 덕분에 – wesdfgfgd