向文本子字符串添加新元素

最后发布: 2008-09-24 02:37:49


问题

说我有以下字符串:

"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中。

javascript jquery python beautifulsoup
回答

这个怎么样:

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,则仅替换第一个出现的计数。

因此,对您而言,它将是:

myStr.replace("foo", "<span>foo</span>")   


回答

如果您想使用javascript / jQuery,请看一下这个问题: 用jQuery突出显示一个单词