2011-06-17 53 views
-2

這是我的代碼:有什麼錯我的Python應用re.sub

string =''' 
{% emoji 'MONEY_BAG' %}<span style="color:#7F6C41;"><a href="{% mobile_url '/inventory/view_item/?category=weapon&inventory_id=%s' inventory_id %}">{{ item.name }}</a>を入手した!</span></span> 


''' 
a = r''' 
{%\s+mobile_url\s+['"]{1}(/inventory/view_item/\?)[^'"]*['"]{1}\s+([^%}]+)\s+%} 
''' 

def aa(x): 
    print x.group(1) 
    print x.group(2) 
    return '' 

string = re.sub(a, aa, string) 
print string 

,它顯示:

{% emoji 'MONEY_BAG' %}<span style="color:#7F6C41;"><a href="{% mobile_url '/inventory/view_item/?category=weapon&inventory_id=%s' inventory_id %}">{{ item.name }}</a>を入手した!</span></span> 

我要打印的x.g​​roup(1)和x.group (2)

所以我能做些什麼,

感謝

+1

您能否提供一個預期產出的例子?另外,是否有可能你正在[用正則表達式解析html](http://stackoverflow.com/questions/1732348/)? – 2011-06-17 07:05:04

+0

它不打印任何東西,因爲再也找不到匹配 – 2011-06-17 07:06:05

+0

您是否試圖用正則表達式解析HTML? – 2011-06-17 07:11:52

回答

3

這是一個糟糕的主意,使用正則表達式從HTML中提取信息。使用HMTL解析器更容易:http://docs.python.org/library/htmlparser.html

或者,如果您想要抓取網頁以獲取更多信息,您可能需要使用scrapy這是一個非常棒的網絡爬蟲框架。

+1

BeautifulSoup應該適合輕量級解析http://www.crummy.com/software/BeautifulSoup/ – Medorator 2011-06-17 09:00:56

2

a你額外的換行符造成的正則表達式不會匹配

a = r'''{%\s+mobile_url\s+['"]{1}(/inventory/view_item/\?)[^'"]*['"]{1}\s+([^%}]+)\s+%}'''