#python #regex
Вопрос:
я сделал этот код, чтобы заменить весь не алфавит пробелом, но я не получаю пробелы, делая это, очищая все пробелы
edit = [["this, is sample 1."],["this!is @ sample two.*"]]
def clearpunch(sentence):
clean = re.sub(r"'|W|d|_",r" ",sentence)
return clean
edit = edit.map(clearpunch)
edit
получение такого текста
«[[«этот пример»], [«два примера»]]»
и мне нужен текст типа «[[«это образец «], [«это второй образец «]]»
Комментарии:
1. Функция, кажется, в порядке. Что такое
edit
?2. что это
edit
значит?3. Просто а
re.sub(r"'|W|d|_",r" ",sentence)
вернет вам то, что вы хотите, чего вы ожидаете больше, чем этого?4. редактировать-это список из списка многих примеров текстов, например
5. Сделайте это запущенным сценарием, демонстрирующим проблему. Мы должны уметь копировать, запускать и видеть то, что видите вы.
Ответ №1:
Это дает вам то, что вы хотите, используя функцию карты:
import re
def clearpunch(sentence):
clean = re.sub(r"'|W|d|_",r" ",sentence)
return clean
edit = [["this, is sample 1."],["this!is @ sample two.*"]]
answer = [list(map(clearpunch, item)) for item in edit]
print(answer)
Ввод:
[["this, is sample 1."],["this!is @ sample two.*"]]
Выход:
[['this is sample '], ['this is sample two ']]
Если вам нужны только строчные английские буквы, вы можете использовать этот шаблон регулярных выражений: r"[^a-z]"