2015-01-13 2 views
1

저는 python을 처음 사용합니다.복잡한 패턴의 파이썬 정규식 검색

나에게 힘든시기입니다.

이제 파일에서 일부 문자열을 찾습니다.

저는 정규식을 가졌지 만 파이썬에서 어떻게 사용하는지 모르겠습니다. Eclipse에서 작동합니다.

아래 하나는 정규식입니다.

("|')\w+\1\s*=\s*?\w*?\.?suppkdid 

이것은 내 소스입니다.

import fnmatch, re, os 

regex = '' #Q1. How could it be possible? 

for root, dirnames, filenames in os.walk('C:\the_file_directory'): 
    for filename in fnmatch.filter(filenames, '*.odi'): 
     with open(os.path.join(root, filename)) as f: 
      for line in f: 
           if regex.search(line) is not None: #Q2. Is it right? 
            print '==========================' 
            print 'filename : %s' %filename 
            print 'line : %s' %line 
            print '==========================' 

답변

1
regex=re.compile(r"""("|')\w+\1\s*=\s*?\w*?\.?suppkdid""") 

당신은 정규식 컴파일 된 패턴을 만들 필요가있다.

사실 직접 둘 다 당신의 패턴을 그대로

if re.search(r"""("|')\w+\1\s*=\s*?\w*?\.?suppkdid""",line) is not None: 

는 또한

""" 

대신 " 또는 '을 사용할 수 있습니다.

+0

감사합니다. 지금 바로 사용해 보겠습니다. – lv0gun9

+0

Ookay, 새로운 것을 시도해 보겠습니다. – lv0gun9

+0

조금 더 필요합니다.이 정규식은 대소 문자를 구분하지 않습니까? – lv0gun9