1

所以我有以下格式的数据:

<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')]
4

1 回答 1

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匹配任何非字母数字字符;这相当于 set [^a-zA-Z0-9_]
  • \w+匹配一个或多个任意非字母数字字符。
  • (...)是一个捕获组:

匹配括号内的任何正则表达式,并指示组的开始和结束;执行匹配后可以检索组的内容

有关更多信息,请参阅文档

于 2013-08-20T17:15:06.917 回答