2012-03-11 3 views
1

대괄호/여러 괄호 사이의 구분 기호를 무시하면서 inputge를 분할하는 자바 정규식을 찾고 있습니다.자바 괄호 사이의 구분 기호를 무시하면서 문자열 분할

자바 코드 : 예를 들어

Pattern p = Pattern.compile("[,regex?]"); 
String[] desiredOutput =p.split(inputString); 

:

inputString="1,{2,{3},4},{4,5},6"; 

desiredOutput와; 구분 기호 :

1;{2,{3},4};{4,5};6 

Thnx!

답변

5

정규식을 사용할 수 없습니다.

표현식은 균형 잡힌 대괄호로 문자열을 일치시켜야합니다. (정규 언어가 아닙니다.)

다른 구문 분석 기법을 사용하거나 {}을 수동으로 계산해야합니다.

+0

1 + 이것은 여러 번 묻지 만 일반적으로 CSV 나 수학적 표현의 컨텍스트에서 "끈적"게시물 또는 FAQ로 작성해야합니다. –

+0

* 기침 * 또는 HTML * 기침 * – bezmax

+0

더 정확하게는 Java의 정규식으로는 불가능합니다. .NET이나 Perl은 재귀 regexes에 아무런 문제가 없습니다. –

관련 문제