Pergunta

Say Eu tenho a seguinte string:

"I am the most foo h4ck3r ever!!"

Eu estou tentando escrever uma função makeSpecial (foo), onde a substring foo seria envolto em um novo elemento span, resultando em:

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

BeautifulSoup parecia ser o caminho a percorrer, mas eu não tenho sido capaz de fazê-lo funcionar.

Eu também poderia passar isso para o navegador e fazê-lo com javascript, mas isso não parece ser uma ótima idéia.

Alguns conselhos para isso seria realmente útil, especialmente em python.

Foi útil?

Solução

Como sobre isto:

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

Outras dicas

Tanto quanto eu posso dizer, você está fazendo uma simples substituição de string. Você está substituindo "foo" com "bar foo bar." Assim, a partir corda você pode simplesmente usar

replace(old, new[, count])   

Voltar uma cópia do string com todas as ocorrências de substring velho substituídos por novos. Se a contagem de argumento opcional é dado, apenas as primeiras ocorrências de contagem são substituídos.

Então, para você seria:

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

Se você quiser fazê-lo com javascript / jQuery, dê uma olhada nesta pergunta: uma palavra com jQuery

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top