2017-08-03 72 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可以从头开始构建字符串,但情况可能并非如此。 –

相关问题