Добавление нового элемента в текстовую подстроку

StackOverflow https://stackoverflow.com/questions/125102

Вопрос

Допустим, у меня есть следующая строка:

"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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top