【问题标题】:Python: Surrounding part of a string with other strings?Python:用其他字符串包围字符串的一部分?
【发布时间】:2018-01-11 10:42:00
【问题描述】:

我有一个这样的字符串

the gray fox

我想用字符串<b></b> 包围单词gray。在 Python 中最有效(和首选)的方法是什么?

(上下文:我正在构建一个具有搜索功能的应用程序,我想在搜索结果中突出显示与用户输入的文本匹配的文本)

感谢您的帮助和亲切的问候, 托德

【问题讨论】:

  • "the gray fox".replace('gray', '<b>gray</b>')
  • 或者一般text.replace(searchstring, '<b>' + searchstring+ '</b>')

标签: python string python-3.x search string-concatenation


【解决方案1】:

如果你只需要一个字,请使用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

【讨论】:

  • 谢谢克里斯蒂安,re.sub 方法是我正在寻找的方法,而且效果很好!请问能不能推荐一个学习正则表达式的地方? (我必须承认我不完全理解你的答案)。我看过 a PyCon talk 关于正则表达式的内容,但它没有涵盖这一点,我需要了解更多
  • 当然@sunyata,感谢您的提问。当然,没有一个地方可以教你所有关于正则表达式的知识,但是一个很好的起点是 Python 文档中的 Regular Expression HOWTO 文章。另一个学习如何使用正则表达式的好工具是Debuggex。它允许您直观地查看您的正则表达式将如何匹配您的输入文本。学习愉快:)
【解决方案2】:

我不知道你在问什么,但是 Python 中的字符串连接最容易使用加号运算符:

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

【讨论】:

  • OP 已经有构造字符串的情况呢?例如:"the gray fox"?您假设 OP 可以从头开始构建字符串,但情况可能并非如此。
猜你喜欢
  • 2020-04-10
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多