是否有 python 函数可以在部分已知的字符串中查找未知值?

Is there a python function to Find a unknown value in a partially known String?

比方说,我们有一个类似亚马逊畅销书排名的字符串,如下所示:

Nr. 490 in Category1 (link to the category)
Nr. 2 in Category2
Nr. 1 in Category3
Nr. 1 in Category4

我尝试使用拆分和替换功能对其进行格式化,但是否有更简单的方法来过滤掉 490、2、1、1,后跟它们各自的类别,这意味着输出将是如下数组:

[490, Category1]
[2, Category2]
[1, Category3]
[1, Category4]

假设你有一个字符串,你可以使用下面的regex:

import re

l = '''Nr. 490 in Category1 (link to the category)
Nr. 2 in Category2
Nr. 1 in Category3
Nr. 1 in Category4'''

[re.findall(r'(?:Nr. |in )(\w+)', i) for i in l.split('\n')] 

[['490', 'Category1'],
 ['2', 'Category2'],
 ['1', 'Category3'],
 ['1', 'Category4']]