2010-11-19 31 views
0

我已经看着白白,我需要得到一些链接文本,并添加target =“_ blank”。我不能使用js,因为它是通讯。正则表达式的href添加一个目标=“_ blank”

链接的文本可能只是一个词,或者它可能是链接的网址。

我需要获得链接文本和链接,然后在目标=“_空白”重新创建它..

任何想法?

只是为了澄清。我有: 文本或http://somelink.com/etc,并且需要添加target_blank而不更改其他任何内容。 Js将是理想的,但不会工作。

我使用Django和希望建立某种linkify滤波器

+0

只是字符串替换' 2010-11-19 15:48:42

+2

http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – jwueller 2010-11-19 15:50:56

+0

现货!你是个天才!我认为这应该工作!我一直在想它:D – Designer023 2010-11-19 15:55:20

回答

0

也许类似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

看起来很有希望。我会尽快给它一个 – Designer023 2010-11-19 16:36:21

0

如果你wan't使用正则表达式来做到这一点,你可以

>>> 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这看起来很有用。干杯兄弟。我会放弃这一点,因为它具有更强大的用途,而不仅仅是替换 Designer023 2010-11-19 16:35:39