代码之家  ›  专栏  ›  技术社区  ›  Designer023

regex for a href to add a target=“_blank”

  •  0
  • Designer023  · 技术社区  · 15 年前

    我找不到,我需要一些链接的文本,并添加target=“blank”。我不能用JS作为时事通讯。

    链接的文本可以只是一个单词,也可以是链接的URL。

    我需要获取链接文本和链接,然后用中的target=“_blank”重新创建它。

    有什么想法吗?

    只是为了澄清。我有: 文本或http://somelink.com/etc,需要在不更改任何其他内容的情况下向其添加目标\u blank。JS是理想的,但不起作用。

    我正在使用django并希望创建某种链接过滤器

    2 回复  |  直到 15 年前
        1
  •  0
  •   Brandon Konkle    15 年前

    也许有点像 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>
    
        2
  •  0
  •   Mirko Rossini    15 年前

    如果你不想用regexp做,你可以

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