Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中匹配对象?_Python_Regex - Fatal编程技术网

如何在python中匹配对象?

如何在python中匹配对象?,python,regex,Python,Regex,我使用Python2.7。 我想转换url 我想要的是 输入: HOGEHOGE<url>http://super.long.url.com</url>BARBAR<url>http://super.long.url.com</url>FUGAFAUGA JAPANESE_CHATACTER<url>https://stackoverflow.com/posts/29250195/</url>JAPANESE_CHATAC

我使用Python2.7。 我想转换url

我想要的是

输入:

HOGEHOGE<url>http://super.long.url.com</url>BARBAR<url>http://super.long.url.com</url>FUGAFAUGA
JAPANESE_CHATACTER<url>https://stackoverflow.com/posts/29250195/</url>JAPANESE_CHATACTER
我的密码在这里

# -*- coding: utf-8 -*-

import re

def __make_shorten_url_text(text):

    def make_shorten_url(m):
        # (1)how to use it??
        long_url = m.compile('\g<1>')
        import urllib
        import bitly_api
        login_name = 'my id'
        api_key = 'my secret key'
        bitly = bitly_api.Connection(login_name, api_key)
        quote_url = urllib.quote(long_url.group(), ':/?&=')
        try:
            result = bitly.shorten(quote_url)
        except:
            return long_url
        return result['url'].encode('utf-8')

    shortened_url_text = re.sub(ur'<url>(.*?)</url>', make_shorten_url, text)
    return shortened_url_text
在Django

输出:

HOGEHOGEhttp://short.urlBARBARhttp://short.url2FUGAFUGA
JAPANESE_CHATACTERhttp://bit.ly/1GXY6npJAPANESE_CHATACTER。
JAPANESE_CHATACTER&lt;url&gt;https://stackoverflow.com/posts/29250195/&lt;/url&gt;JAPANESE_CHATACTER

它是自动转换的。

它不是没有很好地记录在计算机上吗


@shinriyo对不起,我不在。你的问题解决了吗?是的!谢谢您。我的问题是我自己误解了我的代码。这是第一次了解你们的国家毛里求斯。我认识到有很多善良的人。
def make_shorten_url(m):
    long_url = m.group(1)   # Access the capture group here
    import urllib
    import bitly_api
    login_name = 'my id'
    api_key = 'my secret key'
    bitly = bitly_api.Connection(login_name, api_key)
                           # .group() no more needed
    quote_url = urllib.quote(long_url, ':/?&=')
    try:
        result = bitly.shorten(quote_url)
    except:
        return long_url
    return result['url'].encode('utf-8')