2014-12-08 4 views
2

를 제거하는 방법을 나는이 정규식이 :때문에 이스케이프 시퀀스 오류로 자바에서 정규식을 사용할 수 없습니다, 오류

^(([A-Z]:)|((\\|/){1,2}\w+)\$?)((\\|/)(\w[\w ]*.*))+\.([txt|exe]+)$ 

을하지만 때마다 내가 어떤 문자열에 할당, 이클립스 나 잘못된 이스케이프 시퀀스 반환 역 슬래시를 삽입했지만 나에게도 같은 오류가 발생합니다.

위의 표현식을 java의 문자열에 할당하는 방법은 무엇입니까?

답변

2

"\\"을 모두 "\\\\"로 바꿉니다. 자바는 정규 표현식을 지원하지 않습니다. 따라서 컴파일러에서 문자열로 백 슬래시를 얻으려면 "\\"가 필요합니다. 정규 표현식에 이스케이프 된 백 슬래시가 포함될 경우 "\\\\"가 필요합니다.

final String re = "^(([A-Z]:)|((\\\\|/){1,2}\\w+)\\$?)((\\\\|/)(\\w[\\w ]*.*))+\\.([txt|exe]+)$" 
2

는 다음을 시도해보십시오 자체뿐만 아니라 탈출해야

String regex = "^(([A-Z]:)|((\\\\|/){1,2}\\w+)\\$?)((\\\\|/)(\\w[\\w ]*.*))+\\.([txt|exe]+)$"; 

백 슬래시 문자를, 네 개의 \ 문자로 끝날 것 때문에.

관련 문제