2012-10-13 2 views
0

정규식을 지원하는 프로그램으로 250 개의 파일을 검색하려고하지만 쿼리를 작성하는 방법을 모르겠습니다. "와일드 카드"와 일치하는 텍스트를 검색하기위한 정규식?

는 예제 파일입니다

//////////////////////////////Crown Area Effects/////////////////////////////// 

// Super Spies 
DbAreaEffectInfo SuperSpies 
{ 
    name = text_carea_sprspies_name 
    desc = text_carea_sprspies_desc 
    effects = [ 
     // scale sabotage super-effect duration 

     EffectDuration { 
      range = SpaceTime 

      player = Self 
      // which effect's duration is this scaling 
      effect = "SabotageBuilding" 
      scale = 1.25 
     } 

     EffectDuration { 
      range = SpaceTime 

      player = Self 
      // which effect's duration is this scaling 
      effect = "ImprovedSabotageBuilding" 
      scale = 1.25 
     } 

     EffectSpeed { 
      range = Global 
      mask = Spies 
      player = Self 
      // 25% faster 
      scale = 1.25 
     } 

     EffectMaxHitPoints { 
      range = Global 
      mask = Spies 
      player = Self 
      // 25% more hit points 
      scale = 1.25 
     } 

     EffectVisualGlow { 
      range = Global 
      mask = Spies 
      player = Self 
      GlowType = Good 
      OwnerOnly = true 
      Icon = icon_crown_superspies_s 
      Tooltip = text_carea_sprspies_name 
      VTooltip = vtt_power_unitinfo_SuperSpies 
     } 

     EffectIsACrown { 
      range = Global 
      mask = Spies 
      player = Self 

      crownType = kCrownType_Imperial 
     } 
    ] 
} 

와 나는이 같은 패턴을 찾기 위해 원하는 :

<ANYTHING, EVEN NULL>//<ANYTHING, EVEN NULL><MyString><AnyThing, EVEN NULL> 

예를 들어,이에 대한 :

<anything>//<anything>super<anything> 

어떤 것 이 결과를 얻으십시오 :

// scale sabotage super-effect duration 

어떤 정규식 쿼리에서 원하는 결과를 얻을 수 있습니까?

시간과 노력에 감사드립니다.

편집 :

내가 효과적인 파일 검색 사용하고 - http://www.sowsoft.com/search.htm

+0

, 어떤 언어에 대한 http://www.regular-expressions.info/reference.html을 볼 수

^\s*//.*?(\QSTRINGYOUWANTTOSEARCHFOR\E).*$ 

를 사용/정규식 엔진이 이거 야? – sehe

+3

http://www.regular-expressions.info/reference.html이 대상입니다 :) – sehe

답변

1

표준 정규식 와일드 카드는 . (한 문자 용)입니다. 임의의 반복은 *으로 표시됩니다. 그래서 당신을 위해 트릭을 수행해야합니다

~//(.*)super(.*)~ 

당신이/수 구분 기호 ~을두고해야 할 수도 있습니다 귀하의 정규식 엔진에 따라. 또한 기본적으로 .은 줄 바꿈과 일치하지 않으므로 두 번째 와일드 카드는 항상 줄 끝까지 이동하고 super//과 같은 줄에 나타나야합니다.

+0

감사 ^.^4 분 안에 받아 들일 것입니다. –

0

똑 바른 솔루션은 쉘에서

grep pattern /path/to/files* 

를 사용하는 것입니다.

unxutils을 다운로드하여 windows 용 grep으로 만들 수 있습니다.

+0

나는 Windows 7에 관한 언급을 잊었습니다. –

+0

그 밖의 무엇입니까? 그게 어떻게 관련이 있니? – sehe

+0

수정 된 게시물보기 –

0
^\s*//.*?(STRINGYOUWANTTOSEARCHFOR).*$ 

pcre/perlre 스타일을 가정합니다. perlre에서

은/맛이 다른 구문을 가지고 당신이

다른 정규식 엔진을 찾고있는 문자열에서 이상한 해석을 방지 비교

SOOO
+0

끝에 와일드 카드를 추가해야합니다. 일치하는 경우 전체 메모를 반환하기를 원하기 때문입니다. –

+0

@ m.buettner wokay, 나는 그것이 사소한 것이라고 생각했지만, 덧붙였다. – sehe

관련 문제