2010-12-09 7 views
1
str = 'This is first line \n 2 line start from her\ Service Name: test \n some 4 line \n User Name: amit \n some something \n Last Name: amit amit \n 

기본적으로 관심있는 것은 서비스 이름과 사용자 이름을 얻는 것입니다. 이 작업을 위해 정규 표현식을 사용해야합니까? 나는문자열에서 값을 추출하는 더 좋은 방법

dict['service_name'] = 'test' 
dict['user_name'] = 'amit' 
dict['last_name'] = 'amit amit' 

같은 딕셔너리를 만들 그래서 검색하고 값을 얻을 수있는 가장 좋은 방법.

감사

답변

5

을 감안할 때 :

str = 'This is first line \n 2 line start from her\nService Name: test \n some 4 line \nUser Name: amit \n some something \nLast Name: amit amit \n' 

다음 코드 :

dict([line.split(':') for line in str.split('\n') if ':' in line]) 

는 생산 :

{'Last Name': ' amit amit ', 'Service Name': ' test ', 'User Name': ' amit '} 

당신은 오른쪽에 콜론 문제를 방지하기 위해 split(':', 1)split(':')을 변경할 수 있습니다 손 사이드. 또한 공백이 문제가 될 경우 strip에 몇 번 전화를 뿌려야 할 수도 있습니다.

+0

일부 strip()을 추가하면 IMO가 있습니다. –

0

그것은 매우 elegnat하지 않습니다,하지만 당신은() 사용하여 배열에 문자열 폭발 할 수 있습니다 '서비스 이름을'구분 기호로.

+1

내 실수는 PHP 함수 이름이 파이썬이 아니라고 생각하면 분해하지 말아야한다는 것입니다. –

관련 문제