Добавление нового элемента в текстовую подстроку - PullRequest
2 голосов
/ 24 сентября 2008

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

"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.

Ответы [ 3 ]

3 голосов
/ 24 сентября 2008

Как насчет этого:

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!!'
>>>
1 голос
/ 24 сентября 2008

Насколько я могу судить, вы делаете простую замену строки. Вы заменяете «foo» на «bar foo bar». Так что из string вы можете просто использовать

replace(old, new[, count])   

Возвращает копию строки со всеми вхождениями подстроки old, замененной новой Если указан необязательный аргумент count, заменяются только первые вхождения count.

Так что для вас это будет:

myStr.replace("foo", "<span>foo</span>")   
0 голосов
/ 24 сентября 2008

Если вы хотите сделать это с помощью javascript / jQuery, взгляните на этот вопрос: выделите слово с помощью jQuery

...