2010-11-19 16 views
0

J'ai cherché en vain et j'ai besoin d'un texte lié et d'y ajouter target = "_ blank". Je ne peux pas utiliser js comme c'est pour un bulletin d'information.regex pour un href pour ajouter un target = "_ blank"

Le texte lié peut être un simple mot ou une URL liée.

je dois obtenir le texte du lien et le lien puis recréer avec la target = « _ blank » dans ..

Toutes les idées?

Juste pour clarifier. J'ai soit: du texte ou http://somelink.com/etc et besoin d'ajouter le target_blank à cela sans rien changer d'autre. Js serait idéal mais ne fonctionnera pas.

J'utilise django et je voulais créer une sorte de filtre Linkify

+0

Juste chaîne remplacer toutes les occurrences de '

+2

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – jwueller

+0

Spot on! tu es un génie! Cela devrait fonctionner je pense! J'ai été trop penser: D – Designer023

Répondre

0

Peut-être quelque chose comme pyquery?

>>> from pyquery import PyQuery 
>>> d = PyQuery('<a href="http://google.com">My Link</a>') 
>>> print d('a').attr('target', '_blank') 
<a href="http://google.com" target="_blank">My Link</a> 
+0

semble prometteur. Je vais y aller sous peu – Designer023

0

Si vous wan't de le faire avec regexp vous pouvez

>>> import re 

>>> link = """<a href="somesite">This is the link to some site</a>""" 

>>> e = re.sub(r'<a(?P<in_a>[^>]+)>(?P<in_link>[^<]+)</a>', 
     r'<a \g<in_a> target="_blank" > \g<in_link> </a>', 
     link, 
     ) 
>>> print e 
<a href="somesite" target="_blank" > This is the link to some site </a> 
+0

oooh cela semble utile. Santé mec. Je vais essayer car il a des utilisations plus puissantes que le simple remplacement des instances de Designer023