2013-01-09 7 views
1

한 단어를 제외한 모든 문자에 대해 정규식 그룹을 정의하려면 어떻게해야합니까? 이미 질문 몇 가지 유사한 질문이 알고 있지만, 복잡한 정규식 내에서 할 것을 할 수있는 방법을 찾을 수 없습니다Regex 한 단어를 제외한 모든 문자

:

내 정규식은 다음과 같습니다

...(?<Subfield7>.{1,16})(?<Subfield8>//.{1,16})? 

하는 Subfield7 아무것도 일치해야합니다 경우 두 슬래시는 다음 하위 필드의 구분 기호이기 때문에 두 슬래시는 제외됩니다.

  • ... abcdefghijklmnop // abcdefghijklmnop -> 식별 기호 7 : ABCDE ..., 식별 기호 8 : // ABCDE ...
  • ... 1.3,5-7 9/11 // abcdefghijklmnop -> 서브 필드 7 : 1.3.5-7 9/11, 서브 필드 8 : // abcde ...
  • ... // abc // 123 // 456 -> 서브 필드 7 : 12345, 서브 필드 8 : // abc // 123 // 456

편집 :
내 목표는 두 가지 주요 슬래시로 정의 식별 기호에 의해 8 시작 서브 필드 (7) 및 서브 필드 8 식별했지만 서브 필드 (7)는 (단일) slahses 포함되어있을 수 있습니다. 하위 필드 7 및 8의 길이는 가변적입니다.

답변

0

당신은 //없이 비어 있지 않은 문자열이

"(?!.*//).{1,16}" 

/일치 사용할 수 있습니다하려는 경우/일치하지 않는 // 또는 // 또는 a //.

이게 원하는가요?

+0

안녕하세요. 많은 감사. 이것은 하나의 정규식으로 사용될 때 작동합니다. 그러나 다음 패턴 (( //.{1,16})?)이 따라 오면 정규식은 실패합니다. 이것은 정의에 따라 하위 필드 8이 두 개의 슬래시로 시작하기 때문입니다. –

관련 문제