나는 다음과 같은 텍스트 청크가 : 나는 나를 키 값을 구문 분석 할 수있는 좋은 정규식을 찾기 위해 노력하고구문 분석 콜론으로 구분 된 데이터
string = """
apples: 20
oranges: 30
ripe: yes
farmers:
elmer fudd
lives in tv
farmer ted
lives close
farmer bill
lives far
selling: yes
veggies:
carrots
potatoes
"""
합니다. 다음과 같이 한 줄 키 값을 가져올 수 있습니다.
'(.+?):\s(.+?)\n'
그러나 내가 농부 나 채식주의자를 때리면 문제가 발생합니다. 나는 농부와 관련된 모든 값을 잡는 시간의 지옥을 데, 그러나
re.findall('(.+?):\s(.+?)\n', string, re.S),
: 재 플래그를 사용
는, 내가 좋아하는 뭔가를 할 필요가있다.
각 값 다음에 줄 바꿈이 있고 여러 줄인 경우 값 앞에 탭 또는 일련의 탭이 있습니다.
{ 'apples': 20, 'farmers': ['elmer fudd', 'farmer ted'] }
등
당신의 도움에 미리 감사합니다과 목표는 같은 일을하는 것입니다.
'lives in tv'부분이 중요합니까? 원하는 출력으로 언급하지 않았습니다. –
이 접근법은 어떻습니까? 줄 바꿈에 의한 분할은'x'로 저장하고 각 줄을 단계별로 실행하고': ''로 분할하십시오. 두 번째 부분이 비어 있지 않으면 두 쌍을 키와 값으로 사전에 추가하고'x'에서 줄을 띄웁니다. 그 다음에는 '(:'포함) 키 목록 만 남게되고 나머지는 그 키 목록에 들어갑니다. 트리밍 된'x'를 실행하고 나머지를 사전에 추가하십시오. –
''tv에 사는''이 목록에 나오지 않는 이유는 무엇입니까? 또는 "농부 법안"이라고할까요? – abarnert