수색…


비고

여기서 목표는 내용을 잃지 않으므로 정규식은 입력을 소비 (일치)해서는 안됩니다. 오히려 이전 대상 입력의 마지막 문자와 다음 대상 입력의 첫 문자 사이 에 일치해야합니다. 예를 들어 8 자로 된 하위 문자열의 경우 아래 표시된 위치에서 입력을 중단해야합니다 (예 : 일치).

a b c d e f g h i j k l m n o p q r s t u v w x y z
               ^               ^               ^

문자 위치 사이 에 표시해야하는 입력의 공백을 무시하십시오.

문자열을 알려진 길이의 하위 문자열로 나눕니다.

트릭은 "이전 일치"를 의미하는 정규식 \G 와 함께 룩백을 사용하는 것입니다.

String[] parts = str.split("(?<=\\G.{8})");

정규식은 마지막 매치가 끝난 후 8자를 찾습니다. 이 경우 일치 항목의 너비가 0이므로 더 간단하게 "마지막 일치 후 8 자"라고 말할 수 있습니다.

편리하게 \G 는 입력의 시작으로 초기화되므로 입력의 첫 번째 부분에서도 작동합니다.

문자열을 가변 길이의 하위 문자열로 나누십시오.

알려진 길이 예제와 같지만 길이를 정규식에 삽입하십시오.

int length = 5;
String[] parts = str.split("(?<=\\G.{" + length + "})");


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow