Python Regex Matching - разделение на пунктуацию, но игнорирование определенных слов - PullRequest
0 голосов
/ 17 января 2019

Предположим, у меня есть следующее предложение,

Привет, меня зовут доктор Кто. Я влюблен в рыбные палочки и заварной крем !!

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

В идеале, регулярное выражение должно захватывать текст между скобками:

Привет (,) my () имя () - () Доктор () Кто (.) Я () в () люблю () с () рыбными пальцами () и () заварным кремом (!! )

Обратите внимание, что у меня есть список Python, который содержит такие слова, как "Доктор" что я хочу игнорировать. Я также использую string.punctuation, чтобы получить список знаков препинания для использования в регулярном выражении. Я пытался использовать отрицательный взгляд, но он все еще ловил "." У доктора Любая помощь приветствуется!

1 Ответ

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

вы можете сначала выбросить все свои стоп-слова (например, «доктор»), а затем все буквы (и цифры).

import re

text = "Hi, my name is Dr. Who. I'm in love with fish-fingers and custard !!"
tmp = re.sub(r'[Dr.|Prof.]', '', text)
print(re.sub('[a-zA-Z0-9]*', '', tmp))

Будет ли это работать?

будет напечатано:

,      '    -   !!

Вывод захватывает текст в скобках в вашем вопросе.

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