регулярное выражение в python, заменить все гласные в слове, кроме #hashtag и @username - PullRequest
1 голос
/ 04 февраля 2020

Я пытаюсь выучить регулярные выражения в python, чтобы заменить все гласные в слове, кроме #hashtag и @username. но я знаю регулярные выражения только для:

найти гласные: [aiueoAIUEO]

найти @username и #hashtag: ([@#][\w_-]+)

пример:

@username blah blah #blah blah #hashtag @blah blah blah

становится:

@username blh blh #blah blh #hashtag @blah blh blh

import re

s = "@username blah blah #blah blah #hashtag @blah blah blah"

#([@#][\w_-]+)
print(re.sub(r'[aiueoAIUEO]', '', s))

1 Ответ

1 голос
/ 04 февраля 2020

Вы можете использовать

import re
s = "@username blah blah #blah blah #hashtag @blah blah blah"
print(re.sub(r'([@#][\w-]+)|[aiueoAIUEO]', r'\1', s))

См. Демо regex и демо Python .

С ([@#][\w-]+)|[aiueoAIUEO], хэштег / упоминание заносится в группу 1, и в этом случае обратная ссылка \1 возвращает его обратно в результирующую строку, в противном случае гласный совпадает и удаляется.

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