2012-06-21 2 views
2

RegEx와 힘들어하며 여기에 대한 안내를 찾을 수 있기를 바랍니다. 이미 여기와 Google에서 검색을했는데 정확한 용어를 찾는 것이 어렵습니다. 비 캡처 그룹이 나를 도울 수 있다고 상상할 수는 있지만 어떻게 적용해야할지 모르겠다.RegEx - 일치 항목에서 문자 시퀀스를 제외하십시오.

// PN-123456 
// ITK 12345 
//IT-12345 

: 이제 나는 또한이 같은 의견을 찾을

^[ \t]*//[^a-z]+?$ 

:

는 기본적으로 나는 (더 소문자) "비명 없습니다"하는 자바 한 줄 주석을 찾을 이 코멘트는 나를 위해이 유효하므로 위의 RegEx에서 제외 시키려고했습니다.. 항상이 패턴입니다 :

  1. 옵션 공백
  2. "PN"또는 "IT"또는 "ITK"
  3. 하이픈, 공백 또는 아무것도
  4. 4 ~ 6 자리
  5. 옵션 공백

이것이이 패턴에 대한 나의 접근 방식입니다.

[ ]?PN[ -]?[0-9]{1,6} 

하지만 지금은 RegEx에서 두 표현식을 통합 할 수 없습니다. 어떻게 작동할까요?

은 TIA, 베드로는

답변

7

당신이 원하는 negative lookahead :

[^a-z]+하지 소문자있을 것입니다 필요하지만, "단지 대문자"와 같은 아주 동일하지 않습니다하는 것으로
^//(?!\s*(?:PN|ITK?)[ -]?[0-9]{1,6}[ ]*$)[^a-z]+?$ 

. 예를 들어, 댓글 // ----------, 심지어는 빈 // (공백이있는 한)을 잡을 것입니다.

예 : 거에요, http://regexr.com?31app

+0

! 그리고 예, "비 감각적 인 코멘트"도 포함하고 싶었습니다. 비어 있습니다. 제가 제안한 예를 정확하게 충족시키기 위해 제안서를 채택하도록 허용하십시오 (부정적인 미리보기에는 "//"가 포함되어야합니다). 그래도 좋습니다. 대단히 감사합니다 .-- 나는 장래의 사용을 위해 미리보기 주제를 살펴볼 것입니다. –

+0

@Peter - 필자는 단지 그것을 테스트하고'/'를 추가했다. - 그것은 lookahead 앞에 올 수있다 (물론'\ s * //'일 수도있다). 감사! – Kobi

+0

그레이트 지원, 감사합니다 :-) –