Удаление некоторых слов заглавными буквами, но не прописными - PullRequest
0 голосов
/ 06 ноября 2019

У меня очень длинный текстовый файл, который выглядит следующим образом:

'a_lot(icl>how)', '', 'TO', 'A', 'VERY', 'GREAT', 'DEGREE', 'OR', 'EXTENT', 'WE', 'ENJOYED', 'OURSELVES', 'A', 'LOT', 'beaucoup', '{CAT(CATADV)}', '', 'a_lot(icl>how)', '', 'TO', 'A', 'VERY', 'GREAT', 'DEGREE', 'OR', 'EXTENT', 'WE', 'ENJOYED', 'OURSELVES', 'A', 'LOT', 'cher', '{CAT(CATADV)}'

Что я хочу сделать с помощью Python Regex, это удалить все заглавные слова как 'TO', 'A', 'VERY', 'GREAT', 'DEGREE', 'OR', 'EXTENT', 'WE', 'ENJOYED', 'OURSELVES', 'A', 'LOT',.

Как я могу сделать это с помощью регулярного выражения, поддерживая слова как beaucoup или cher (французские нижние слова) и '{CAT (CATADV)}'?

Чтобы быть более понятным,Я хочу, чтобы мой вывод был:

 'a_lot(icl>how)', '', 'beaucoup', '{CAT(CATADV)}', '', 'a_lot(icl>how)', 'cher', '{CAT(CATADV)}'

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Не совсем понятно, чего вы надеетесь достичь здесь. Если задача состоит в том, чтобы печатать только слова в верхнем регистре, попробуйте

for word in words:
    if all(x.isupper() for x in word):
        print(word)

Если вы настаиваете на использовании регулярных выражений, попробуйте

regex = re.compile(r'^[A-Z]+$')
for word in words:
    if regex.match(word):
        print(word)

Это не будет печатать слова, которые в верхнем регистреи некоторые другие символы, которые не являются строчными;если вы хотите этого, возможно, изучите некоторые другие полезные предикаты или просто попробуйте not x.islower() вместо x.isupper().

0 голосов
/ 06 ноября 2019

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

 import enchant
 d = enchant.Dict("en_US")
 list = ['a_lot(icl>how)', '', 'TO', 'A', 'VERY', 'GREAT', 'DEGREE', 'OR', 'EXTENT', 'WE', 'ENJOYED', 'OURSELVES', 'A', 'LOT', 'beaucoup', '{CAT(CATADV)}', '', 'a_lot(icl>how)', '', 'TO', 'A', 'VERY', 'GREAT', 'DEGREE', 'OR', 'EXTENT', 'WE', 'ENJOYED', 'OURSELVES', 'A', 'LOT', 'cher', '{CAT(CATADV)}']

 list_of_words = [word for word in list if not d.check(word)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...