3

ユーザーが「車」を検索した場合、出力は次のようになります。

今日あなたの好きなを見つけてください、次の2日間の車の販売。

車が太字になっていることに注意してください。グーグルはそれをします: ここに画像の説明を入力してください

Pythonでこれを行うための最良の方法は何ですか?太字はHTMLです。

4

3 に答える 3

6
>>> 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'

ただし、「車」のインスタンスとして何をカウントする必要があるかを正確に把握するのは少し難しいです。これは「カートゥーン」などになります\b(cars?)\bこの特定のフレーズを試すことができます。一般に、ステマーを使用することをお勧めします。

于 2012-08-01T18:06:46.090 に答える
2
>>> 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"
>>>
于 2012-08-01T18:44:33.283 に答える
1

文字列置換メソッドは非常に使いやすく、検索された単語のすべてのインスタンスを置換します。

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

元の大文字/小文字を保持したい場合は、reモジュールを使用してください。

import re
s3 = re.sub(r'(CARS)', r'<b>\1</b>', s, flags=re.IGNORECASE)
于 2012-08-01T18:15:21.443 に答える