2011-09-22 7 views
2

정규식으로 Offering이라는 텍스트 파일을 검색합니다. 그런 다음 해당 검색의 시작 지점과 끝 지점을 사용하여 열을 확인하고 정수를 가져옵니다. 일부 인스턴스 (열 A)에는 필자가 원하지 않는 선행 공백이 있습니다. 나는 숫자 (B 열에서 찾을 수있는 것처럼)를 공백없는 공백 문자로 인쇄하려고합니다. 정규식에있는 정규식? 가정 어구?정규식 - 파이썬 - 선행 공백 제거

price = re.search(r'(^|\s)off(er(ing)?)?', line, re.I) 
if price: 
    ps = price.start() 
    pe = price.end() 

      A    B 
      Offering  Offer 
      56.00   55.00 
      45.00   45.55 
      65.222  32.00 

답변

5

당신은 선행 및 후행 공백을 제거하는 strip()을 사용할 수

In [1]: ' 56.00 '.strip() 
Out[1]: '56.00' 
+0

정규식 결과의 컨텍스트에서? 전체 텍스트 파일을 .strip() 할 수 없습니다. –

+1

@CaptainCretaceous : 줄 단위로 읽어야 할 것입니다 (미안하지만, 그 부분이 충분히 분명하다고 생각했습니다). 각 줄에 대해'line [ps : pe] .strip()'을 수행하십시오. – NPE

0

을 당신이 정규 표현식을 사용하는 경우에만 선두 공백을 제거하려는 경우, 당신은 그렇게 할의 re.sub를 사용할 수 있습니다.

>>> import re 
>>>re.sub(r"^\s+" , "" , " 56.45") 
'56.45'