숫자로 시작하는 모든 라인을 추출하는 정규식이란 무엇입니까?숫자로 시작하는 모든 라인 찾기
나는 ^
문자가 줄의 시작 부분에 어떤 문자와도 일치하는 데 사용된다는 것을 알고 있지만 올바르게 구성하지 못했습니다. 여기
re.findall('^[0-9]+',mystring).
숫자로 시작하는 모든 라인을 추출하는 정규식이란 무엇입니까?숫자로 시작하는 모든 라인 찾기
나는 ^
문자가 줄의 시작 부분에 어떤 문자와도 일치하는 데 사용된다는 것을 알고 있지만 올바르게 구성하지 못했습니다. 여기
re.findall('^[0-9]+',mystring).
는 전체 라인을 일치시킬하지만 그것은 단지 시작 번호와 일치한다. 욕심이 많은 와일드 카드와 multiline 인수를 포함시켜 여러 행을 검색하려고한다고 알려야합니다. 보십시오 : 당신은 라인의 나머지 부분과 일치하는 [0-9]
후 re.MULTILINE
수정 및 .*
을 잊지
re.findall('^[0-9].*', mystring, re.MULTILINE)
'[0-9]'다음에'+'를 사용할 필요가 없습니다. 그것 없이도 작동합니다. –
정확합니다. 방금 질문의 코드를 복사하고 수정 사항을 너무 자세히 살펴 보지 않았습니다. – gowrath
. 이이고 정규식을 사용하는 경우 r"(?m)^[0-9].*"
을 사용합니다. 그러나, 그것은 최선의 방법이 아닙니다. \ n을 사용하여 분할하고 첫 번째 문자가 숫자인지 확인하는 과정을 반복합니다. 여기
내가 제안 무엇 :
with open('file', 'r') as f:
for line in f:
if len(line) > 0 and line[0].isdigit():
print(line)
len (line)> 0이고 line [0] .isdigit()이면? 귀하의 솔루션은 인덱스를 범위 밖으로 벗어나게합니다. –
@PrashantBhanarkar 예,'line [0]'이 아닌'len (line)> 0'이어야합니다. –
죄송합니다. 아이들을 잠자리에 들게 .... 고정되었습니다. –
그래서 무슨 일이 일어나고 있는지를 참조하십시오? 당신의 입력은 무엇이며 출력은 무엇입니까? 문제를 해결하기 위해 무엇을 시도 했습니까? – UnholySheep
'MULTILINE' 한정자와'. *'는 나머지 줄과 일치하지 않습니다. 그러나, 그것은 최선의 방법이 아닙니다. '\ n'로 분할 해 최초의 char가 숫자인지를 검사합니다. http://ideone.com/dO4AYB –
^^ 예. 그게 내가하는 일이야. – idjaw