2008-09-24 3 views
1

Скажем, у меня есть следующая строка:Добавление нового элемента в текст Substring

"I am the most foo h4ck3r ever!!" 

Я пытаюсь написать функцию makeSpecial (Foo), где Foo подстрока будет обернутый в новом поверочного элемента, в результате чего :

"I am the most <span class="special">foo></span> h4ck3r ever!!" 

BeautifulSoup похоже, что это путь, но я не смог заставить его работать.

Я мог бы передать это в браузер и сделать это с помощью javascript, но это не похоже на отличную идею.

Некоторые советы для этого были бы очень полезными, особенно в python.

ответ

3

Как об этом:

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!!' 
>>> 
+0

Я согласен с этим, хотя в зависимости от контекста , некоторая обработка ошибок может быть полезна – daniel 2008-09-24 02:48:46

1

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

replace(old, new[, count]) 

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

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

myStr.replace("foo", "<span>foo</span>") 
Смежные вопросы