Как определить, какой разделитель стоит первым после слова в строке, используя python - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть строка как:

The exam is for testing your skills. The exam includes the following:
1) Aptitude
2)synonyms
3)Reasoning

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

string.find('exam')

это дает мне индексслова в строке.И здесь я должен определить, какой разделитель присутствует в конце каждого предложения.например:

The exam is for testing your skills. [here it is '.']
The exam includes the following: [here it is ':']

так как мне определить разделители, которыми заканчивается предложение, на основе поиска слова?

1 Ответ

0 голосов
/ 23 сентября 2019

Ваша формулировка проблемы несколько расплывчата, поскольку предложение может заканчиваться использованием ",",":",";", но не может заканчивать предложение.Чтобы исправить эту проблему, определите пунктуацию, которую вы ищете, и укажите в списке.

Следующий код определяет начальную позицию всех ваших ключевых слов.Затем он находит первый экземпляр одного из ваших идентифицированных знаков препинания, который вы считаете «концом предложения / предложения», и возвращает его.

import re

text = '''
    The exam is for testing your skills. The exam includes the following:
    1) Aptitude
    2)synonyms
    3)Reasoning'''

targets =[m.start() for m in re.finditer('exam', text)]

end_punct = ['!','.','?',':',';']

for target in targets:
    subtext = text[target:]
    print(subtext)
    for char in subtext:
        if char in end_punct:
            print(char)
            break

Пример возврата:

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