2015-02-03 5 views
0

정규식을 사용하여 텍스트 파일에서 변수 (x)를 문자열로 설정하려고합니다.메모장 + + Python 스크립트에서 변수를 정규식 문자열로 설정하는 방법은 무엇입니까?

내가 검색하고있는 파일 내에는 여러 줄의 코드가 있으며 항상 그 줄 중 하나가 티켓 번호 WS ########입니다. 내가 위의 코드가 작동하도록 관리했습니다 ~ 내 연구를 통해

def foundSomething(m): 
    console.write('{0}\n'.format(m.group(0), str(m.span(0)))) 

editor1.research('([W][S]\d\d\d\d\d\d\d\d)', foundSomething) 

보이는 등이

~ 파일 ~

out.test 
WS12345678 
something here 
pineapple joe 
etc. 

~ 코드, 그것은 콘솔에 WS12345678를 출력 할 때 cooresponding 텍스트는 파일 내에 존재합니다.

WS12345678을 변수에 저장하면 해당 번호로 해당 파일을 저장할 수 있습니까?

편집 는 이 솔루션을 당신에게 @Kasra AD 감사 내가

x = find "WS\d\d\d\d\d\d\d\d" 
file.save(x) 

해결에 노력하고 의사 코드에 넣어합니다. 해결 방법을 만들 수있었습니다.

import re #import regular expression test = editor1.getText() #variable = all the text in an editor window savefilename = re.search(r"WS\d{8}",test).group(0) #setting the savefile variable console.write(savefilename) #checking the variable 

은 문자열로 1 편집기에서 모든 것을 끌어와 그에 정규식 검색을 실행할 수 있습니다 플러그인 PythonScript를 사용하여 메모장에서 파일 ++ 내에서 특정 문자열을 찾을 수 있습니다. 다음과 같은 정규식을 사용하여 당신의 욕망 문자열을 추출하기위한도

def foundSomething(m): 
    return console.write('{0}\n'.format(m.group(0), str(m.span(0)))) 


my_var=foundSomething(input_arg) 

과 :

+0

왜 때의 WS12345678 결과가 WS99999999이고 예상 결과는 무엇입니까? – Kasramvd

+0

혼란스럽게 유감스럽게도 정규 표현식을 사용하고 있기 때문에 이름이 "WS"로 시작되고 그 뒤에 8 개의 숫자가있는 한 중요하지 않습니다. – Mason

+0

그래서 압축을 풀고 싶고 무엇을하고 싶습니까? – Kasramvd

답변

1

당신은 단순히 변수에 할당 한 다음 함수에서 결과를 반환해야

>>> s="""out.test 
... WS12345678 
... something here 
... pineapple joe""" 
>>> import re 
>>> re.search(r'WS\d{8}',s).group(0) 
'WS12345678' 
+0

@downvoter 이유는 무엇입니까? – Kasramvd

+1

동등성 복원을 위해 Upvoted : D –

+0

editor.research가 함수 인 경우 어떻게 작동합니까? (저는 메모장 ++ 용 PythonScript 플러그인을 사용하고 있습니다) – Mason