3
내가 어떤 파이썬 코드에서 사용하는 정규 표현식 몇 가지 도움이 필요하고, 내가 거의 내가 필요로하는 표현을 만든에 일치하는, 내가 아주 가까운입니다. 여기 내가 사용하는 파이썬 코드입니다 :정규 표현식은 - 여러 줄
import re
def main():
f = open('/tmp/file', 'r')
rexp = re.compile('(?m)^ [*] ''([^ ]+).*\(([^ \)]+)')
upgrades = rexp.findall(f.read())
print upgrades
f.close()
main()
을 그리고 이것은/tmp 디렉토리/파일의 내용이다 :
Software Update Tool
Copyright 2002-2010 Apple
2014-03-18 14:31:28.958 softwareupdate[5505:3603] No alternate URLs found for packageId MobileDevice
Software Update found the following new or updated software:
* SecUpd2014-001-1.0
Security Update 2014-001 (1.0), 112751K [recommended] [restart]
* Safari6.1.2MountainLion-6.1.2
Safari (6.1.2), 51679K [recommended]
* iTunesXPatch-11.1.5
iTunes (11.1.5), 79522K [recommended]
나는 다음과 같은 출력을 얻을 수 위의 표현으로 :
[('SecUpd2014-001-1.0\n', '1.0'), ('Safari6.1.2MountainLion-6.1.2\n', '6.1.2'), ('iTunesXPatch-11.1.5\n', '11.1.5')]
을 출력은 다음과 같이된다, 그래서 내 질문에 대한
, 어떻게 표현을 변경할 수 있습니까?
[('SecUpd2014-001-1.0', '1.0'), ('Safari6.1.2MountainLion-6.1.2', '6.1.2'), ('iTunesXPatch-11.1.5', '11.1.5')]
비슷한 시나리오가 있었지만 정규식은 매우 구체적인 경향이있어서 도움이되는 것을 찾을 수 없었습니다. 더 많은 정보가 필요하다면, 내가 얻을 수있는 도움을 주시면 감사하겠습니다. 당신의 정규식에서
re 모듈! – YFP
그것은 참으로했던 나를 위해 "트릭을"대단히 감사합니다. :) – sebbe