2016-08-01 10 views
1

문자열 'list'를 입력으로 받아 서식을 지정해야합니다.문자열을 정수로 나눕니다.

list " ["This is the input:", "A list element;", "Another element;", "And another one."]

내가 시도 다음을 수행 :

을 내가 출력은 다음과 같은 형식의 목록 싶습니다

string = "This is the input:1. A list element;2. Another element;3. And another one."

그리고 다음은 몇 가지 예를 입력입니다

list = string.split('(\d+). ')

모든 정수에서 분할되어 전체 sto p와 공백이 있지만 작동하지 않는 것 같습니다. 단 하나의 요소 목록 만 반환되어 분할 기준이 하나도 없음을 나타냅니다.

누구나 내가 뭘 잘못하고 있는지 알아?

+0

alecxe이 (가) 답변을 드렸습니다. 당신이 잘못하고있는 것은 a)'string.split()'은 정규 표현식을 사용하지 않고 리터럴 텍스트 만 가져옵니다. 그리고 b) regex의'.'는 어떤 것과도 일치하는 특수 문자입니다. 그래서 숫자 뒤에 * 리터럴 dot *는 백 슬래시로 이스케이프 된'.'이 필요합니다. – TessellatingHeckler

+0

입력을 주셔서 감사합니다. '.'를 벗어나지 않은 자신을 차기는하지만 어쨌든'\ d'와 (과) 함께 작업하지 않았다는 것을 알고 있으면 위안이됩니다. –

답변

2

당신은 하나 또는 그 이상의 점 뒤에 숫자와 공백 : 또는 ;으로 re.split() method 분할 사용할 수 있습니다

>>> re.split(r"[:;]\d+\.\s", s) 
['This is the input', 'A list element', 'Another element', 'And another one.'] 

가 분할 내부 :;을 유지하기를, 당신은 positive lookbehind check 사용할 수 있습니다 :

>>> re.split(r"(?<=:|;)\d+\.\s", s) 
['This is the input:', 'A list element;', 'Another element;', 'And another one.'] 
관련 문제