Есть ли функция Python для поиска неизвестного значения в частично известной строке? - PullRequest
0 голосов
/ 05 ноября 2019

Допустим, у нас есть строка типа рейтинга бестселлеров amazon, которая выглядит следующим образом:

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]

1 Ответ

2 голосов
/ 05 ноября 2019

Если у вас есть строка, вы можете использовать следующее 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']]
...