2013-10-04 2 views
0

간단한 질문이 있는데, 자바의 HTML 문자열에서 느낌표를 모두 제거해야합니다. 내가Java remove all 느낌표

testo = testo.replaceAll("\\\\!", "! <br>"); 

regex = "\\s*\\b!\\b\\s*"; 
     testo = testo.replaceFirst(regex, "<br>"); 

testo = testo.replaceAll("\\\\!", "! <br>"); 

으로 시도했다 그러나 작동하지 않습니다. 누군가 나를 도울 수 있습니까? 또 다른 작은 질문, 하나의 브레이크 라인으로 1, 2 또는 3 느낌표를 대체해야합니다. 모두에게 감사합니다!

+2

당신은 무엇을'이스케이프하고 있습니까? :> 어쨌든'replaceAll ("! +", "!
")' – user2246674

+0

고맙습니다! 그것은 작동합니다! 이 탈출구를 모른다. – Lele

+1

'!'는 정규식 구문에서 (그 자체로) 특별하지 않다. '+'는 "하나 또는 그 이상 일치"를 의미합니다. 최대 * 3 번 (예 : 1, 4 .. 또는 5000 번과 같이 이전의 주석은 "!"과 같이 연속으로 일치합니다)과 일치시키려는 경우 Jerry의 대답을 참조하십시오. – user2246674

답변

2

왜 정규식이 필요합니까? 당신은 단순히

testo = testo.replace("!", "! <br>"); 

String#replace 그러나 여러 느낌표 사용 제거 할 수 있습니다

testo = testo.replaceAll("!{1,3}", "! <br>"); 

가 수행해야합니다 당신은 느낌표를 탈출하지 않아도

testo = testo.replaceAll("!+", "! <br>"); 
+1

"1, 2 또는 3 느낌표를 하나의 브레이크 라인으로 교체해야합니다." – user2246674

+0

감사의 말, 해결책은 코멘트입니다. – Lele

2

.

{1,3}은 1 ~ 3 회 연속 발생을 의미합니다.