2008-09-24 63 views
1

说我有以下字符串:添加新元素添加文本子串

"I am the most foo h4ck3r ever!!" 

我想写一个makeSpecial(富)功能,其中富子将被包裹在一个新的span元素,产生:

"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

据我所知,你在做一个简单的字符串替换。你用“bar foo bar”代替“foo”。所以从string你可以只使用

replace(old, new[, count]) 

返回字符串的副本,通过更换新的子串老的所有地方。如果给出可选的参数计数,则仅替换第一个计数事件。

所以对你来说将是:

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