2016-06-01 2 views
1

내가 가지고있는 다음과 같은 데이터 :정규식 반복 캡처 그룹

User ID    Name               Last Activity Date  
-------------------- ------------------------------------------------------------ ----------------------- 
UserID1    UserName1             2016-05-31 
UserID2    UserName2             2016-05-31 
UserID3    UserName3             2016-05-31 
... 

정규식은 모든 사용자 ID, 이름, 및 활동 날짜를 캡처하는 데 사용할 수있는 가장 좋은 방법은 무엇입니까?

현재 나는 User ID\s+Name\s+Last Activity Date\s+[- \s]+(.*?)\s+(.*?)\s{6,}(.*)\s을 가지고 있으며 이것은 첫 번째 줄을 캡처 할 수 있지만 어떻게 다른 줄을 모두 얻을 수 있습니까?

+0

여기에 Python을 사용하고 있습니다. – Bijan

+1

@Bijan 무엇이이 작업을위한 도구로 정규식을 선택하게 만들었습니까? 확실히 더 적합한 다른 것들이 있습니다. – Biffen

+0

도움이되는지 확인하십시오. http://regexr.com/3dhpo –

답변

2

링크의 정규식을 살펴보십시오. https://regex101.com/r/gN2cH2/2 링크에서 생성 된 파이썬 코드는 다음과 같습니다. 이 정규식은 표제 행을 제외한 모든 USerID, 이름, 활동 날짜를 캡처합니다.

import re 
p = re.compile(ur'((UserID[0-9])\s+(UserName[0-9]+)\s+([0-9]{4}-[0-9]{2}-[0-9]{2}))') 
test_str = u" User ID    Name               Last Activity Date  \n -------------------- ------------------------------------------------------------ -----------------------\nUserID1    UserName1             2016-05-31\nUserID2    UserName2             2016-05-31\nUserID3    UserName3             2016-05-31" 

re.findall(p, test_str) 

캡쳐 링 그룹을 사용하여 UserID, 이름 및 캡쳐 및 마지막 활동 값을 찾을 수 있습니다.