저는 하루 종일 regex를 사용하여 복잡한 문자열을 의미있는 데이터로 구문 분석했습니다. 나는 거의 모든 것을 못 견뎌 왔지만이 마지막 문제로 남았습니다.패턴을 기반으로 한 줄을 여러 줄로 나누십시오.
일정을 나타내는 문자열 목록을 파싱 중입니다. 매일 매일 목록에 별도의 항목이 있습니다. 어떤 날에는 다음과 같이 하루에 여러 개의 약속이 있습니다.
화요일 10/13/2011 SHIFT 00 : 00-08 : 00 약속 설명 DAYOFF 08 : 00-17 : 30 08 : 00-12 : 30 12 : 30-13 : 00 13 : 00-17 : 30 약속에 대한 설명 NIGHT 17 : 30-24 : 00 약속에 대한 설명
이 문자열을 교대로 3 줄로 나누고 싶지만 그날을 유지하고 싶습니다. 날짜. 모든 교대는 공통적으로 대문자로 된 글자로 구성되므로 [A-Z]입니다.
예상 출력은 다음과 같습니다
화요일 2011년 10월 13일 SHIFT 00 : 00-08 : 약속의 00 설명
화요일 2011년 10월 13일 DAYOFF 08 : 00 ~ 17 : 30 08 : 00 ~ 12시 반 12 : 30 ~ 13 : 00 13 : 00 ~ 17 : 30 설명
화요일 2011년 10월 13일 밤 17 : 30-24 : 단순히 가능한 모든 검사 할 수없는 약속
의 00 설명 그들이 알지 못하기 때문에, 유일한 것은 그들이 모두 대문자에 있다는 것입니다. 따라서 정규 표현식을 사용해야합니다. ,
placeholder = []
for day in schedule:
newLine = []
if day.count(regexmatch) > 1:
newline.append(day[:2]) #To include day and date
i = 2
for i < len(day):
if day[i] == regexmatch:
placeholder.append(newLine)
newLine = []
newLine.append(day[:2])
newLine.append(day[i])
else:
newLine.append(day[i])
i += 1
placeholder.append(newLine)
나는이 날이에 REGEXMATCH을 구현하는 데 도움이 감각과 사람을 만드는 희망 :
나는 (REGEXMATCH이 변화 ([AZ] {5,}) =)과 같은 구조의 생각 또는 완전히 다른 경로를 택할 수도 있습니다.
내가 에 코드 (반복적으로 대신 목록에 추가) 약속 생성 구성 할 것
- # 1 위의 문자열은 내가 가정, 파일에서 모두 한 줄입니다 함수에 의해 전체 행에 대한 단일 문자열로 수신됩니다. # 2 날짜 (약속 시작)는 각 라인마다 동일합니까? # 3 문자열에 다른 가능한 국회 의사당 문자가 있기 때문에 우리 정규식과 일치시키기 위해 사용하는 것만으로는 충분하지 않습니다. 다른 제약 조건은 무엇입니까? 2 문자 이상? 항상 한 마디? 항상 데이트를하고 시간을 보내기 전에? 나는 당신을 도울 수있는이 질문에 대답한다. –
# 1 위의 문자열은 100 개 항목의 목록에서 하나의 항목 (문자열)입니다. # 2이 항목에서 모든 행에 대해 동일한 날짜가 지정됩니다. # 3 Constraint = 5 개 이상의 국회 의사 그러므로 [AZ] {5,} – Difusio