Frage

Sagen, ich habe die folgende Zeichenfolge:

"I am the most foo h4ck3r ever!!"

Ich versuche, eine makeSpecial (foo) Funktion, wo die foo String in einem neuen Element span gewickelt würde zu schreiben, was zu:

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

BeautifulSoup schien wie die Art und Weise zu gehen, aber ich habe nicht in der Lage, damit es funktioniert.

Das kann ich auch an den Browser übergeben und tue es mit Javascript, aber das scheint nicht wie eine gute Idee.

Einige Ratschläge für das wären wirklich nützlich, vor allem in Python.

War es hilfreich?

Lösung

Wie wäre es damit:

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

Andere Tipps

Soweit ich das beurteilen kann, sind Sie eine einfache Zeichenfolge ersetzen tun. Sie ersetzen "foo" mit "bar foo bar." Also von String nur

replace(old, new[, count])   

Gibt eine Kopie des Strings mit allen Vorkommen von Teilzeichen alten durch neue ersetzt. Wenn die optionale Argument Zahl angegeben wird, werden nur die erste Zählung Vorkommen ersetzt.

Also für Sie, es wäre:

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

Wenn Sie es mit Javascript / jQuery tun wollte, werfen Sie einen Blick auf diese Frage: Highlight ein Wort mit jQuery

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top