정상적으로 작동하는 것처럼 보이는 정규 표현식을 작성하려고했지만 리터럴 문자열 중 일부를 단어 패턴으로 바꿔야하고 이유를 이해하고자합니다.왜 파이썬 정규 표현식은 정규 표현식과 일치하지 않지만 w +는 무엇입니까?
import re
text = " 1 p2 2.26347691E+12 optvl 9.05369210E+04 ctha 6.00000000E+01"
p1 = re.compile(r"\s+(\d+)\s+p2\s+([\d\.\+\-E]+)\s+optv1\s+([\d\.\+\-E]+)\s+ctha\s+([\d\.\+\-E]+)")
m1 = p1.findall(text)
print m1
p2 = re.compile(r"\s+(\d+)\s+p2\s+([\d\.\+\-E]+)\s+\w+\s+([\d\.\+\-E]+)\s+\w+\s+([\d\.\+\-E]+)")
m2 = p2.findall(text)
print m2
여기 출력입니다 :
다음은 예입니다 어떤 통찰력에 대한
[]
[('1', '2.26347691E+12', '9.05369210E+04', '6.00000000E+01')]
감사합니다!
편집 : - 네, 그것은 오타의 단어 첫 번째 버전에 오타가 1
'optvl' 대' optv1'. 오타가 있습니다. –
@ g.d.d.c 확실하게이 경우에 이것은 주제 밖입니까? –
감사! 그게 내가 최근에 다시 설치 한 후 더 나은 문자를 구별하는 무언가로 내 글꼴을 전환하지 않기 때문에 얻는 것입니다. – flutefreak7