Регулярное выражение соответствует нескольким символам, но не включает некоторые - PullRequest
2 голосов
/ 21 марта 2019

Есть параграф, и я хочу использовать регулярное выражение для извлечения всех слов внутри.

a bdag agasg it's the cookies for dogs',don't you think so? the word 'wow' in english means.you hey b 097  dag final

Я пробовал несколько регулярных выражений с re.findall (regX, str) и нашел такое, которое можетсоответствует большинству слов.

regX = "[ ,\.\?]?([a-z]+'?[a-z]?)[ ,\.\?]?"

['a', 'bdag', 'agasg', 'It's', 'the', 'cookies', 'for', 'dogs' ',' don 't ", 'you', 'think', 'so', 'the', 'word'," wow ' ",' in ',' english ',' означает ',' you ','эй', 'b', 'dag', 'final']

Все хорошо, кроме **wow'**.

Интересно, могло бы регулярное выражение объяснить логику «это может быть запятая / пробел / точка / и т. Д., Но не может быть апострофом».

Может кто-нибудь посоветовать?

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Я не совсем понял, что вы хотели, чтобы вывод был, но попробуйте это:

[ ,\.\?]?(["-']?+[a-z]+["-']?[a-z]?)[ ,\.\?]? 

, используя это регулярное выражение, вы можете получить ' и " в тексте.

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

0 голосов
/ 21 марта 2019

Попробуйте:

[ ,\.\?']?([a-z]*('\w)?)[\' ,\.\?]? 

Добавлена ​​другая группа, поэтому вам нужно будет выбрать только группу 1.

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