получить все вхождения из совпадающего шаблона и разделить - PullRequest
0 голосов
/ 04 августа 2020

Я использую следующий код, чтобы найти все индексы от индекса 0 до ~, чтобы я мог создать строку для каждого совпадения

import re
s = 'product 1 & product 2|category 1|8~product 4|category 3 |10~product 1 & product 19|category 8|6~product 50|category 4|6'

substring = "~"

matches = re.finditer(substring, s)

matches_positions = [match.start() for match in matches]

print(matches_positions)

output 
[34, 59, 95]

Я вручную использую каждый индекс, чтобы показать В следующем выводе я хотел бы создать функцию, которая могла бы разбивать и возвращать каждое вхождение

print(s[0:34])
print(s[34 + 1: 59])
print(s[59 +1 : 95])
print(s[95 +1 : len(s)])


output

product 1 & product 2|category 1|8
product 4|category 3 |10
product 1 & product 19|category 8|6
product 50|category 4|6

Заранее спасибо

1 Ответ

1 голос
/ 04 августа 2020

Вам просто нужно использовать встроенную функцию str.split:

outputs = s.split('~')

Вот outputs значение:

['product 1 & product 2|category 1|8',
 'product 4|category 3 |10',
 'product 1 & product 19|category 8|6',
 'product 50|category 4|6']
...