안녕하세요, 저는 세로줄로 구분 된 문자열을 분할하려고합니다. 예를 들면 : 자바에서자바 정규식 표현 이스케이프 문자
String str = "a=1|b=2";
, 우리는 다음과 같이해야한다 : 나는 하나의 슬래시를 사용하는 경우
str.split("\\|");
는 :
:
str.split("\|");
컴파일러는 오류를 제공합니다 유효하지 않은 이스케이프 문자열 (유효한 문자는 \ b \ t \ n \ f \ r \ "\ '\)
왜 이런 일이 발생하는지 설명 할 수 있습니까? 감사!
'|'기호는 정규 표현식에서 특별한 의미를 갖기 때문에 이스케이프해야합니다. 역 슬래시 문자 _also_는 문자열 (이스케이프 문자)에서 특별한 의미를 가지기 때문에 이스케이프 처리해야합니다. 그래서 ... 정규 표현식에 두 개의'\'기호가 필요합니다. 이것은이 사이트에서 여러 번 다루어졌습니다. – jahroy