匹配但不包括python正则表达式中的一个或另一个

时间:2013-08-20 16:54:44

标签: python regex

所以我的数据格式如下:

<Category: XXX &nbsp;-&nbsp; 

<Category: XXX</b>

我只想保留'xxx',但仍然可以保留('XXX','')或('')或其他不想要的变体。

我不想使用美味的汤,我在使用我的anaconda包管理器下载时遇到了麻烦


已添加 - 我的尝试

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

会在

时产生['xxx']
<Category: XXX</b>

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

会在

时产生['xxx']
<Category: XXX &nbsp;

我想我做了类似

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

产生了

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

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

1 个答案:

答案 0 :(得分: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