• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

запускать несколько регулярных выражений для поиска и замены в файлах

Suzana Me

Member
03.06.2021
8
0
BIT
0
Trebuie să fac un procesor batch simplu (rulați mai multe regex pentru a găsi și înlocui fișiere)

Să presupunem că am 6 sau 10 formule regex pentru căutare și înlocuire. De exemplu. Primele 2 expresii regulate:

Căutare: <title>. * \ | \ K (. *) (</title>)
Înlocuiți cu: \ x20 Test \ x20 \ 2

Căutare: <em>. * \ |. * </em>) (</title>)
Înlocuiți cu: \ x20 \ 2

și atât de singur. Codul Python ar trebui să ruleze aceste regexuri în ordinea dorită de mine și să poată adăuga întotdeauna un regex nou. Dar pentru o expresie regulată, ar trebui să luați în considerare și opțiunea .matches newsline.

Dar dacă vreau să fac 3 înlocuiri regex, unul după altul în ordinea dorită, în unele fișiere .txt, cum pot face asta?

Acesta este punctul de vedere
[COD] import re
s = '(zyx) bc'
print (re.findall (r '(? <= \ () \ w + (? = \)) | \ w', s))
['zyx', 'b', 'c'] [/ COD]
 

Pernat1y

Well-known member
05.04.2018
1 443
135
BIT
0
Seems right? Just add file-related part.
Python:
import re

regexes = {
    r'regex1': r'string1',
    r'regex2': r'string2'
}

for k, v in regexes.items():
    print(re.sub(k, v, 'string from file'))
 
Последнее редактирование:

Suzana Me

Member
03.06.2021
8
0
BIT
0
Am rulat acest script, dar am o eroare
Python:
import os
cale = "D: / 11"

def listdir (dir):
    nume de fișiere = os.listdir (dir)
    pentru fișiere în nume de fișiere:
        print (fisiere)

listdir (cale)

extensie_fisier = ".html"

regexes = {
    r '<titlu>. * \ | \ K (. *) (</title>) ': r'Bebe', # First regex r'regex1 ': r'string1'
    r '^ <html. * $ ': r'fff' # Al doilea regex r'regex1 ': r'string1'
}

pentru k, v în regexes.items ():
    print (re.sub (k, v, „text”))

cu open ("*. html", mode = "w") ca fișier: # A se vedea nota 2.
    contents = file.write (f "{extensie_fisier.text}")

print („GATA!”)
 
Последнее редактирование:

Suzana Me

Member
03.06.2021
8
0
BIT
0
Код:
urlfinder = re.compile('^(http:\/\/\S+)')
urlfinder2 = re.compile('\s(http:\/\/\S+)')
@register.filter('urlify_markdown')
def urlify_markdown(value):
    value = urlfinder.sub(r'<\1>', value)
    return urlfinder2.sub(r' <\1>', value)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!