• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема регулярные выражения, изменить по шаблону

~localhost

Green Team
30.10.2017
230
49
BIT
18
Привет). написал скрип чтобы из документа по шаблону нужные мне строки и записывал в новый документ. но проблема в том что он записывает в таком виде 5['| 10 198.252 '] а нужно привести к такому виду 5 = 100 198.252 и после второго числа дописывал 0.

Пробовал снова открывать созданный питоном документ, и использовать re.sub но с ним что то у меня не получилось. Подскажите что можно использовать или хотя бы в нужное направление)
[doublepost=1514141416,1514041945][/doublepost]Решение данной проблемы:
И так я написал небольшой с крипт который с помощью регулярных выражений по заднному шаблону ищу нужные мне совпадения ищу с помощью re.findall() как стало известно он возвращает список с одним элементом ( не важно сколько у вас там всего) если просто вывести на экран то получим следующее
[ ' то что мы нашли ' ] в мое случае ['| 10 198.252 ']
а что если вам так же как и мне не нужны квадратные скобки и одинарные кавычки, а еще вы хотите вставить в по середине найденного результата что то свое, как в моем случае. Нам поможет так называем срез списка (list indexing) он вывод на экран индексы тех элементов которые мы укажем в квадратных скобка [ a : b : c ]
где a - первый индекс b - последний с - шаг
но в моем случае индекс один по этому будет выглядеть так [0] [1:3] т.е в первых квадратных скобках мы указывает первый элемент он же единственный а во вторых мы его уже разбиваем.
вот как было у меня:

Код:
import re
Создал шаблон по которому осуществляется поиск. для записи в шаблон своей переменной используйте re.escape()

search = r"\|\s+" + re.escape(str(i)) + r"\s+\w+\.\w+[|,\s]"

По заданном шаблону ищем все совпадения в тексте
result = re.findall(search, mytext)
на выходу получал это
['|10 198.252 ']   там порядка 300+ таких строк
Мне это дело надо было привести к виду
1   100 = 198.252 ,  где 1 это номер по порядку, + к второму число добавляем 0 и после него ставим равно
В итоге на выходе вот такая строка:
str (y) + ' = ' + result[0][1:6] + '0' + result[0][6:17] + '\n'

где y это переменная которая считает номер по порядку

Может что то дополните или поправите меня, я буду признателен т.к. стаж программирования у меня 1 неделя))
 

Tayler

Green Team
08.07.2017
40
46
BIT
1
Python:
mytext = "5['| 10 198.252 ']"
result = mytext.replace("['|", '')  # Убираем ['|
result = result.split(' ')  # Разбиваем по пробелам,теперь у нас 4 объекта в переменной result,4-ый - это '],мы его просто не трогаем
result = result[0] + ' = ' + result[1] + '0 ' + result[2]  # Клеим
print(result) # 5 = 100 198.252
 
Мы в соцсетях:

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