2012-08-01 4 views
2

만약 사용자 검색 "자동차"나는 오늘, 자동차 판매를위한 당신의 마음에 드는 자동차 찾기굵은 검색 텍스트

처럼 보이도록 출력을 싶습니다 다음 2 일.

자동차는 굵게 표시됩니다. Google에서 수행 : enter image description here

파이썬에서이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 굵은 글자는 HTML 형식입니다.

답변

4
>>> the_string = "New Cars, Used Cars, Car Reviews, Car Finance Advice - Cars.com" 
>>> re.sub(r'(car)', r'<b>\1</b>', the_string, flags=re.I) 
'New <b>Car</b>s, Used <b>Car</b>s, <b>Car</b> Reviews, <b>Car</b> Finance Advice - <b>Car</b>s.com' 

"car"의 인스턴스로 간주되어야 할 것이 무엇인지 정확하게 파악하는 것은 약간 까다 롭습니다. 이 경우 "car toon"이됩니다. 이 특정 구문에 대해 \b(cars?)\b을 시도해 볼 수 있습니다. 일반적으로 stemmer을 사용할 수 있습니다.

1

문자열 방법은 매우 쉽게 교체하고 대체 검색 한 단어의 모든 인스턴스 :

import re 
s3 = re.sub(r'(CARS)', r'<b>\1</b>', s, flags=re.IGNORECASE) 
2
: 당신이 원래/소문자를 유지하려면

s = 'New Cars, Used Cars, Other Cars' 
s2 = s.replace('Cars', '<b>Cars</b>') 

가, 다시 모듈을 사용

>>> import re 
>>> the_string = "New Cars, Used Cars, Car Reviews, Car Finance Advice - Cars.com" 
>>> word = 'cars' 
>>> toreplace = "<span class='highlight' STYLE='color:black'>\g<0></span>" 
>>> pattern = re.compile(re.escape(word), re.I) 
>>> highlighted_txt = re.sub(pattern,toreplace,the_string) 
>>> highlighted_txt 
"New <span class='highlight' STYLE='color:black'>Cars</span>, Used <span class='highlight' STYLE='color:black'>Cars</span>, Car Reviews, Car Finance Advice - <span class='highlight' STYLE='color:black'>Cars</span>.com" 
>>> 
관련 문제