Как искать и заменять вложенными символами текстовый файл? - PullRequest
0 голосов
/ 15 ноября 2018

Учитывая текстиль, как я могу заменить все токены, которые имеют % в начале на []. Например, в следующем текстовом файле:

Hi how are you? 
I %am %fine.
Thanks %and %you

Как я могу заключить все символы с % с []:

Hi how are you? 
I [am] [fine].
Thanks [and] [you]

Я попытался сначала отфильтровать токены, а затем заменить их, но, возможно, есть более питонический способ:

with open('../file') as f:
    s = str(f.readlines())
    a_list = re.sub(r'(?<=\W)[$]\S*', s.replace('.',''))
    a_list= set(a_list)
    print(list(a_list))

1 Ответ

0 голосов
/ 15 ноября 2018

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

re.sub(r'\B%(\w+)', r'[\1]', s)

См. Демоверсию regex

Детали

  • \B - граница без слов, слева от текущего местоположения должно быть начало строки или символ без слова
  • % - % char
  • (\w+) - Группа 1: любые 1 или более знаков слова (буквы, цифры или _). Замените на (\S+), чтобы сопоставить 1 или более непробельных символов, если необходимо, но примечание \S также соответствует пунктуации.

Демо Python :

import re

s = "Hi how are you? \nI %am %fine.\nThanks %and %you"
result = re.sub(r"\B%(\w+)", r"[\1]", s)
print(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...