Добавление нового элемента в текстовую подстроку
-
02-07-2019 - |
Вопрос
Допустим, у меня есть следующая строка:
"I am the most foo h4ck3r ever!!"
Я пытаюсь написать функцию makeSpecial (foo), в которой подстрока foo была бы обернута в новый элемент span, в результате чего:
"I am the most <span class="special">foo></span> h4ck3r ever!!"
BeautifulSoup казался подходящим вариантом, но я не смог заставить его работать.
Я мог бы также передать это в браузер и сделать это с помощью javascript, но это не кажется отличной идеей.
Некоторые советы по этому поводу были бы действительно полезны, особенно в python.
Решение
Как насчет этого:
Python 2.5.1 (r251:54863, Apr 18 2007, 08:51:08) [MSC v.1310 32 bit (Intel)] on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> def makeSpecial(mystring, special_substr):
... return mystring.replace(special_substr, '<span class="special">%s</span>
' % special_substr)
...
>>> makeSpecial("I am the most foo h4ck3r ever!!", "foo")
'I am the most <span class="special">foo</span> h4ck3r ever!!'
>>>
Другие советы
Насколько я могу судить, вы выполняете простую замену строки.Вы заменяете "foo" на "bar foo bar". Так что из строка вы могли бы просто использовать
replace(old, new[, count])
Возвращает копию строки со всеми вхождениями подстроки old, замененной на new.Если задан необязательный параметр count , заменяются только первые вхождения count.
Так что для вас это было бы:
myStr.replace("foo", "<span>foo</span>")
Если вы хотели сделать это с помощью javascript / jQuery, взгляните на этот вопрос: Выделите слово с помощью jQuery