2014-03-26 3 views
0

자바 정규식에 대해 물어보고 싶습니다. 여기서 도움을 얻을 수 있기를 바랍니다.자바 정규식을 탈출하는 방법 | operator

나는 "textX|textY|textZ"과 같은 문자열을 가지고 있습니다. 이제 Java의 각 문자 |에서이를 분리하고 싶습니다.

나는

string.split("\|"); 

그것을 시도했지만 난 그냥 "Invalid escape sequence" 오류가 발생합니다.

|을 구분 기호로 사용하면 어떻게 위의 문자열을 분할 할 수 있습니까?

String[] tokens = string.split("\\|") 

또는 다른 사용 문자 클래스 :

String[] tokens = string.split("[|]"); 
+0

메타 문자를 이스케이프 처리하려면 백 슬래시를 사용하십시오. – TheLostMind

답변

4

당신은 그렇게 사용하는 Java에서 탈출을 두 번 필요 두 개의 백 슬래시로

+0

감사합니다. 하지만 지금 또 다른 문제가 있습니다. 결과 배열은 문자 사이에 텍스트가 없더라도 길이가 같아야합니다. 구분 기호. 내가 어떻게 할 수 있니? – Nexolight

+0

입력 데이터가 무엇이고 예상 출력을 알려주실 수 있습니까? – anubhava

1

단순히 자바

string.split("\\|"); 

을하고 우리는 우리가 그것을 벗어날 때

2

메타 문자를 이스케이프 처리하려면 \\|을 사용해야합니다.

2

자바에서는 regex에 대해 두 번 이스케이프 처리해야합니다. 문자열에 대해 한 번, 정규식에 대해 한 번.

다시 \\ 슬래시 당신은 두 번 사용해야 할

string.split("\\|") 
2

을 시도해보십시오 string.split("\\|").

백 슬래시는 java와 regex의 이스케이프 문자이기 때문입니다. 첫 번째는 java에 대해 두 번째를 이스케이프 처리하므로 "실제"백 슬래시가 정규식으로 전달됩니다.