2017-08-03 106 views
1

我有這樣Python:用其他字符串包圍一部分字符串?

the gray fox 

一個字符串,我想圍繞這個詞gray與琴絃<b></b>。什麼是在Python中執行此操作的最有效(和首選)方式?

(背景:我建立與搜索功能的應用程序,我想強調的匹配由用戶輸入的文本,搜索結果的文本)

爲感謝幫助與親切的問候, 託德

+7

'的「灰狐」 .replace(「灰色」 ,'灰色')' –

+0

或通常'text.replace(searchstring,''+ searchstring +'')' –

回答

3

如果你只需要用一個字來做到這一點,使用str.replace

sentence = "the gray fox" 
new = sentence.replace('gray', '<b>gray</b>') 
print(new) # the <b>gray</b> fox 

如果你需要一個以上的話要做到這一點,使用re.sub

from re import sub 
sentence = "the gray fox" 
new = sub('(gray)', r'<b>\1</b>', sentence) 
print(new) # the <b>gray</b> fox 
+0

謝謝Christian,'re.sub'方法是我正在尋找的方法,它工作得很好!我能否問一下你是否可以推薦一個學習正則表達式的地方? (我必須承認我沒有完全理解你的答案)。我觀看了關於正則表達式的[PyCon談話](https://www.youtube.com/watch?v=abrcJ9MpF60),但沒有涉及到這一點,我需要了解更多 – sunyata

+1

Sure @sunyata,謝謝你的提問。當然,沒有一個地方會教你所有有關正則表達式的東西,但是一個很好的起點是[_Regular Expression HOWTO_](https://docs.python.org/3.6/howto/regex.html#regular -expression-howto)文章。另一個學習如何使用正則表達式的好工具是[Debuggex](https://www.debuggex.com/)。它可以讓你直觀地看到你的正則表達式如何匹配你的輸入文本。快樂學習:) –

0

我不知道究竟你問什麼,但在Python字符串連接是最容易與加運算來完成:

>>> str1 = "the " 
>>> str2 = "gray" 
>>> str3 = " fox" 
>>> interp1 = "<b>" 
>>> interp2 = "</b>" 
>>> str1+interp1+str2+str3 
'the <b>gray</b> fox' 
+1

我認爲這不是你的答案正確的問題... –

+0

那麼OP已經有一個構造字符串的情況呢?例如:''灰狐狸''?你假設OP可以從頭開始構建字符串,但情況可能並非如此。 –

相關問題