2013-08-20 40 views
1

所以我認爲在以下格式的數據:匹配,但不包括一個或另一個與蟒蛇正則表達式

<Category: XXX &nbsp;-&nbsp; 

<Category: XXX</b> 

我woud想留住「 xxx',但已經能夠保留('XXX','')或('')或其他不需要的變體。

我不想用美麗的湯,我無法用我的蟒蛇包管理器


ADDED下載它 - 我嘗試

'Category: ([^<]+)</b' 

將產生[ 'xxx']

<Category: XXX</b> 

'Category: ([^<]+) &n' 

會產生[ 'XXX']當

<Category: XXX &nbsp; 

,我想我不喜歡的東西

'Category: ([^<]+)(</b| &n)' 

即產生

[('XXX', '</b')] 

[('XXX', ' &nb')] 
+0

你可以包括更多的代碼,你一直在嘗試到目前爲止,並在你的問題中的一些示例輸入數據? – Jerry

+0

ummm're。findall(「Category:\ s(\ W +)」,my_text)'類似的東西? –

+0

確定添加一些主要職位 – amchugh89

回答

1
>>> import re 
>>> re.match('<Category:\s(\w+)', "<Category: XXX</b>").group(1) 
'XXX' 
>>> re.match('<Category:\s(\w+)', "<Category: XXX &nbsp;-&nbsp;").group(1) 
'XXX' 

或使用findall

>>> import re 
>>> re.findall('<Category:\s(\w+)', "<Category: XXX &nbsp;-&nbsp;")[0] 
'XXX' 
>>> re.findall('<Category:\s(\w+)', "<Category: XXX</b>")[0] 
'XXX' 
  • \s匹配任何空白字符。
  • \w匹配任何非字母數字字符;這相當於設置[^a-zA-Z0-9_]
  • \w+匹配一個或多個任何非字母數字字符。
  • (...)是捕獲組:

匹配任何正則表達式的括號內,並且 指示組的開始和結束;匹配已被執行之後

更多信息參見documentation可以 檢索的組的內容。

+0

\ s(\ w +)的作品,這是我*真的*關心,但如果你能解釋,我會閱讀並欣賞 – amchugh89

+0

當然,我已經更新了答案。 – alecxe

相關問題