说我有以下字符串:
"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中。
答案 0 :(得分: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!!'
>>>
答案 1 :(得分:1)
据我所知,你正在做一个简单的字符串替换。你用“bar foo bar”取代“foo”。所以从string你可以使用
replace(old, new[, count])
返回字符串的副本,其中所有出现的substring old都替换为new。如果给出可选参数计数,则仅替换第一次计数。
所以对你来说就是:
myStr.replace("foo", "<span>foo</span>")
答案 2 :(得分:0)
如果你想用javascript / jQuery做,请看看这个问题:Highlight a word with jQuery