Я пытался избавиться от строк после форварда sla sh по определенным правилам.
При обнаружении форварда sla sh удалите строки, проверьте, есть ли перед ними более одного слова sla sh и более одного слова после sla sh (если две фразы разделены sla sh) для удаления строк после sla sh:
REYNOLDS COMMUNITY CENTER/CENTRALE DE SOINS REYNOLDS
Предыдущий пример имеет три слова перед sla sh и четыре слова после sla sh, тогда конечный результат должен быть:
REYNOLDS COMMUNITY CENTER
Однако в следующем примере:
AB/CDE COMMUNITY CENTER
Строка после / остается, потому что есть более чем одно слово (есть три слова), а до sla sh есть только одно слово. В этом случае только sla sh удаляется, чтобы получить окончательный результат следующим образом:
AB CDE COMMUNITY CENTER
Если у нас есть следующая строка:
REYNOLDS COMMUNITY CENTER/24
Последняя строка должна be:
REYNOLDS COMMUNITY CENTER 24
Сначала проверьте, что перед sla * есть более одного слова sh (содержит три), а после sla sh (24) есть только одно слово. Затем sla sh удаляется.
Правило состоит в том, чтобы хранить только строку перед sla sh, если в каждой стороне / находится более одного слова. С другой стороны, если есть только одно слово с любой стороны от /, то следует удалить sla sh.
До сих пор я безуспешно пытался получить предыдущее поведение с помощью следующего фрагмент:
import re
lst= ['REYNOLDS COMMUNITY CENTER/CENTRALE DE SOINS REYNOLDS',
'100/10 COMMUNITY CENTER',
'ROGERS COMMUNITY CENTER/CENTRAL CARE',
'AB/CDE COMMUNITY CENTER',
'REYNOLDS COMMUNITY CENTER/24']
for element in lst:
result = re.sub(r'(^\w+\s+\w+[^/]+)/([A-Za-z]+(?:[^A-Za-z\n]+[A-Za-z]+)+[^A-Za-z\n]*$)?',
'\1',
element,
0,
re.IGNORECASE)
print(result)
Предыдущие примеры должны дать следующие результаты:
REYNOLDS COMMUNITY CENTER
100 10 COMMUNITY CENTER
ROGERS COMMUNITY CENTER
AB CDE COMMUNITY CENTER
REYNOLDS COMMUNITY CENTER 24
Спасибо за вашу помощь