получение группы с использованием фильтра в регулярном выражении в Python - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть dict с набором ключей, и я хочу сопоставить регулярное выражение в ключах и получить только группу по соответствующим ключам, поэтому я делаю это:

subject = re.compile(r'(*.)_id') dict = {'name': 'Robert', 'customer_id': 2, 'action_id': 5} results = list(filter(subject.match, dict)) results

дает мне следующее

['customer_id', 'action_id']

Я хочу получить

['customer', 'action']

1 Ответ

0 голосов
/ 25 февраля 2019

Получив этот список ['customer_id', 'action_id'], вы можете использовать findall, используя ^[^_]+ regex, чтобы извлечь часть перед _id.Попробуйте этот код Python,

import re

subject = re.compile(r'.*_id')
dict = {'name': 'Robert', 'customer_id': 2, 'action_id': 5} 
results = list(filter(subject.match, dict))
results = [''.join(re.findall(r'^[^_]+',s)) for s in results]
print(results)

Prints,

['customer', 'action']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...