Регулярка *~*

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
здравствуйте, как в файле найти все варианты: любой знак до и после тильды = "~"
и вывести принтом все варианты с количеством найденных вариантов? спасибо
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
Код:
with open(f_name, encoding='utf-8') as f:
      # '.' - НЕэкранированная точка, будет искать любой символ, кроме перевода строки, с флагом DOTALL — также и с переводом строки
     reg = r'.~.'
     data = f.read()
     data = re.sub('(?s)\/\*(.+?)\*\/', '', data)  # удаляет комментарий JS вида "/*комментарий*/"
после этого у меня затык)) прошу помощи
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
971
219
43
20
Москва
ну наверное просто найти по регулярке:
Python:
with open(f_name, encoding='utf-8') as f:
      # '.' - НЕэкранированная точка, будет искать любой символ, кроме перевода строки, с флагом DOTALL — также и с переводом строки
     reg = r'.~.'
     data = f.read()
     data = re.sub('(?s)\/\*(.+?)\*\/', '', data)  # удаляет комментарий JS вида "/*комментарий*/"
     find_list = re.findall(reg, data)
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
сделал уже:
Код:
import re
from collections import Counter
pth = r'I:\replaces'
val = r'russianSpeaking.js'
f_name = pth + '\\' + val

with open(f_name, encoding='utf-8') as f:
    reg = r'.~.'
    data = f.read()
    # удаляет комментарий JS вида "/*комментарий*/"
    data = re.sub(r'(?s)/\*(.+?)\*/', '', data)
    counter = Counter(re.findall(reg, data, re.I))
    for word in counter:
        print(f'{word}: {counter[word]}')
 

Форум IT Специалистов