Используйте регулярные выражения для сопоставления показателей (а) (б) и т. Д. - PullRequest
0 голосов
/ 24 января 2019

У меня есть список речей, и я хочу удалить все те речи, которые содержат индикатор пули среди (a) .. (z), (A) .. (Z) и (i) ... ( IX). Я не могу найти правильное соответствие регулярному выражению, чтобы включить все эти возможности. Я безуспешно пытался с:

list = [item for item in list if '(\w)' in item]

Должен ли я делать их один за другим или есть более эффективный способ? Спасибо!

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Вот как это можно сделать:

import re

rx = re.compile(r"^(\(\w\)|\([ivx]+\)).*", re.MULTILINE)

list = [item for item in list if not rx.match(item)]

См. документацию библиотеки для получения дополнительной информации.

0 голосов
/ 24 января 2019

Во-первых, для сопоставления с регулярным выражением необходим модуль re (или regex). Вам также необходимо позаботиться о специальных токенах в регулярных выражениях, в данном случае в скобках.

Вот пример регулярного выражения, которое работает:

re.search(r"\(([A-Za-z]|v?i{1,3}|i[vx])\)", item)

Вышеупомянутое регулярное выражение будет охватывать (A) - (Z), (a) - (z), а также (i), (ii), ... (viii), (ix).

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