2013-02-11 3 views
2

저는 정규식을 사용하는 초보자이며 별표가없는 콜론으로 문자열을 분할하는 패턴을 찾고 있습니다.별표로 표시되지 않는 콜론으로 분할

나는 작동 할 것이라고 생각하는 다음과 같은 패턴을 발견했지만 그렇지 않습니다.

[^:]+\\*:[^:]+ 

내가 변경해야합니다 (\*는 오브젝티브 C 컴파일러에서 작동하도록 이스케이프)?

답변

6

당신은 negative look-behind를 사용해야합니다 :

(?<![*]): 

이 정규식에 의해 선행되지 않는 colon(:) 일치 ->(?<!..)* ->[*]합니다. 문자 클래스 안에 *을 사용하면 문자의 의미를 잃어 버리고 *과 일치합니다.

0

별표가 아닌 단일 문자는 다음과 같이 표현할 수 있습니다. [^*]. 별표를 특별한 의미가없는 문자 클래스에 넣습니다. 여는 중괄호 바로 뒤에있는 캐럿은 문자 클래스를 무효화합니다.

자체 그룹에 넣어하지 별표 다음 위치의 목적을 위해 단지 콜론을 얻으려면 [^*]:

로 간단하게 기록 할 수있는 모든 앞에는 콜론을 일치 : [^*](:)