2012-03-02 3 views
1

이제 문자열이 있고 \ n을 삭제하고 \ u를 \\ u로 변환하고 싶습니다.정규 표현식

문자열에 \\ u가 포함되어 있으면 \\ u로 변경하지 않습니다.

String.replaceAll()을 사용하고 싶지만 정규식을 작성하는 방법을 모르겠다.

도와주세요. 감사.

예 :

\ U => U

\\ U => \\ \\ 유 (아무것도하지 않고)

+2

'\ u'을'\\ u'로 변경하면''\\ u "''\\\\ u"'가 필요하다는 것을 의미합니까? (몇 가지 예가 유용 할 것입니다 :-) – aioobe

+0

@aioobe 귀하의 조언에 감사드립니다 : – Felix

답변

4

여기 부정적인 모습 숨김 사용하여 솔루션입니다. (변경 그것은 하지\ 덧붙일 \u\\u에있는 경우에만).

String in = "lorem ipsum \\u dolor \\\\u sit \n amet"; 

System.out.println(in); 
System.out.println(in.replaceAll("\\n", "") 
        .replaceAll("(?<!\\\\)\\\\u", "\\\\\\\\u")); 

인쇄 : 제거

lorem ipsum \u dolor \\u sit 
amet 
lorem ipsum \\u dolor \\u sit amet 
  • \n
  • \u\\u로 변경
  • 그러나 \\u은 p입니다. 그대로 예약되어 있습니다.
+0

그것은 작동합니다. 감사합니다 :) – Felix

+0

당신은 너무 많은 탈출의 필요성을 설명해 주시겠습니까? \\ 충분히 벗어나서는 안됩니다. (특히 Java에 능숙하지 않습니다.) – RedBaron

+0

Java 문자열 리터럴의 백 슬래시를 이스케이프 처리해야하므로' "\\"'는 문자열 \을 나타냅니다. 정규 표현식은 \ 또한 특별하게 취급하므로 거기에 또 다른 수준의 이스케이프 처리가 있습니다. – aioobe