2013-06-10 2 views
5

에서 나는 다음과 같은 코드가 있습니다파이썬 - 인쇄 문자열을 포함, 화면합니다 n 출력

pattern = "something.*\n" #intended to be a regular expression 

fileString = some/path/to/file 

numMatches = len(re.findall(pattern, fileString, 0)) 

print "Found ", numMatches, " matches to ", pattern, " in file." 

나는 사용자가 패턴에 포함 된 '\ n을'을 볼 수 있도록하려면를. 현재 패턴의 '\ n'은 화면에 개행을 씁니다. 그래서 출력은 같다 :

Found 10 matches to something.* 
in file. 

난이 원하는 :

Found 10 matches to something.*\n in file. 

예, pattern.replace ("\ n을이", "\ n") 수행 작업을. 그러나 \ t, \ e 등을 포함하여 모든 형태의 이스케이프 문자를 출력하고 싶습니다. 어떤 도움을 주시면 감사하겠습니다. 일치하는 일을하고 표시하기위한 한 -

displayPattern = "something.*\\n" 
print "Found ", numMatches, " matches to ", displayPattern, " in file." 

당신은 패턴의 각각의 경우에 대해 서로 다른 문자열을 지정해야합니다 :

+0

으로 이것을 작성합니다 http://stackoverflow.com/questions/6477823/python-display-special-characters-when-using -print-statement – dkroy

+0

'displayPattern = "something. * \ s"'개행 문자를 찾으려면'\ s'을 사용하십시오 – abhishekgarg

답변

6

repr(pattern)을 사용하면 \n을 원하는대로 인쇄 할 수 있습니다.

3

이보십시오. 디스플레이 패턴에서 \ 문자가 이스케이프 처리되는 방식을 확인하십시오 (\\). 이 도움이

displayPattern = repr(pattern) 
print "Found ", numMatches, " matches to ", displayPattern, " in file." 
0
print repr(string) 
#or 
print string.__repr__() 

희망 :

는 또한, 내장 repr() 기능을 사용하십시오.

+1

왜'repr (string)'대신'string .__ repr __()'을 사용합니까? –

+0

@ntpeterson 나는 그것이 지금까지 존재했다는 것을 몰랐다. 지금 변경하십시오. – Drew

0

repr을 사용하는 또 다른 방법은 % r 형식 문자열을 사용하는 것입니다. 나는 일반적으로 희망이 올바른 방향을 지적, 이것은 이미 요청 받았다

print "Found %d matches to %r in file." % (numMatches, pattern)