Python RegExp исключение - PullRequest
       11

Python RegExp исключение

1 голос
/ 04 мая 2010

Как разделить на все не алфавитно-цифровые символы, кроме апострофа?

re.split('\W+',text)

работает, но также разделится на апострофы. Как добавить исключение к этому правилу?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 04 мая 2010

Попробуйте это:

re.split(r"[^\w']+",text)

Обратите внимание, что w теперь в нижнем регистре, потому что он представляет все буквенно-цифровые символы (обратите внимание, что это включает в себя подчеркивание). Класс символов [^\w'] относится ко всему, что , а не (^), либо буквенно-цифровому (\w), либо апострофу.

2 голосов
/ 04 мая 2010
re.split(r"[^\w']+",text)

Запуская класс символов с ^, он инвертирует определение, поэтому [^\w'] является инверсией [\w'], что соответствует буквенно-цифровому символу / подчеркиванию / апострофу.

0 голосов
/ 28 июля 2012

Ответы здесь не работают, поскольку слова в кавычках не будут лишены апострофов

Что работает для меня это

re.split(r"\W'+|^'+|'+\W|'$|[^\w']+", text)

т.е. удалить:

апостроф (ы) после неслова ИЛИ апостроф (ы) в начале строки ИЛИ апостроф (ы) перед не словом ИЛИ текущее решение

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