2012-01-25 5 views
1

이 질문은 정규식 (정규식)의 문자 클래스 빼기와 관련이 있습니다. 나는 XPATH 2.0 초판의 정규 표현식을 참조한다.음수 그룹의 정규식 문자 클래스 빼기

문자 클래스 뺄셈에 음수 그룹이있는 경우 빼기 연산자 (-)가 먼저 발생합니까? 또는 음수 그룹 연산자 (^) 뒤에?

XPATH/XML 스키마 사양의 텍스트는 다음과 같습니다. 그러나 내 마음에, 그것은 모호하게 읽습니다. 어떤 옵션

· 긍정적 인 문자 그룹 · 또는 · 음극 문자 그룹 · G, 및 C는, GC 유효한 · 문자 클래스 감산 ·이 C의 모든 문자의 집합을 식별한다 · 어느 · 문자 클래스 식 (G)는 도 C (C)에 없습니다.

  • [abc- [-

    1. [^ abc- [광고]
    2. [[^ 광고]^ABC] :

  • 는 다음과 같은 세 가지 정규 표현식에 고려, 구체적으로는

      ^ 광고]

      는 덤의 문자에 대해 매칭되는

    • abcdef

    가능한 일치하는 텍스트는 무엇입니까 (첫 번째 및 후속)?

    답변

    2

    나는 우리가 [G-[C]]으로 을 읽을 수있을만큼 관대 한 경우 텍스트가 모호 생각하고 부정적인 그룹, ^G, [^G]로하지 않습니다. 이제는 caret가 첫 번째 그룹의 일부이며 두 그룹을 무효화하지 않는 것으로 보입니다.

    따라서, [^abc-[ad]]은 일치합니다 :

    {모든 문자를 a, bc 외에} \ {ad} =

    { a, b, cd 게다가 모든 문자}

    :) 동작을 쉽게 테스트 할 수 있습니다.
    보너스로 .Net 정규 표현식도이 기능을 지원하므로 test online을 조금 더 쉽게 만들 수 있습니다.
    참고 : Character Class Subtraction

    +0

    감사합니다. 온라인 테스터가 특히 유용합니다. –