2017-02-28 1 views
0

다음 코드를 고려하십시오. Java String.replaceAll()은 줄 바꿈을 통해 바꿉니다.

String s = "000000Xabcdefgh\nijkX00000000"; 
s = s.replaceAll("X.*X", ""); 
System.out.println(s); 

나는 Xabcdefgh\nijkX가 빈 문자열로 대체 얻을 것으로 예상하지만, 중간에 줄 바꿈이 있기 때문에, 아무것도 교체하지됩니다. 정규식 매칭이 줄 바꿈에서 끝나는 이유는 무엇입니까? 정규식을 매칭 할 때 어떻게 줄 바꿈을 무시할 수 있습니까?

+0

s = s.replaceAll ("X ([^ X] *) X", ""); 그것은 두 개의 X 사이의 모든 것을 대체합니다. – Avaneesh

답변

0

이 시도 : 이것은 다른 모든 공백/개행 문자 처리됩니다

String s = "000000Xabcdefgh\nijkX00000000"; 
s = s.replaceAll("X.*(|\t|\r\n|\r|\n).*X", ""); 
System.out.println(s); 

.

관련 문제