Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Регулярное выражение (столбик вправо)

Nicholas Профи (737), на голосовании 3 месяца назад
Прошу помощи у знатоков:
Нужна регулярка.
Нужно после первого слова каждой статьи чтоб вся статья сместилась на четыре пробела в право. (верстаю словарик) (нужно как на картинке)
Дополнен 4 месяца назад
(для Нотепад++)
Голосование за лучший ответ
Nikassaiop End Просветленный (41467) 4 месяца назад
Если тебя правильно понял, статьи разделены двумя пустыми строками, первая строка статьи - заголовок, неприкосновенна, остальные на табуляцию. С регулярками не очень дружу, но вот на скорую руку скомпилил Python -> exe, его нужно просто поместить в одну директорию с целевым файлом названным text.txt, кодировка UTF-8, ответ будет получен в той же директории в result.txt, вот ссылка на скачивание
Либо можешь запустить сам, вот исходный код:
 r = open('result.txt', 'a') 
pre_content = True
fix = lambda x: r.write(' '+x)
def correct(x):
if x != '\n':
return True
else:
return False
with open('text.txt', 'r', encoding='utf-8') as f:
lines = [line.rstrip()+'\n' for line in f]
pre = True
for line in lines:
if correct(line) and not pre:
fix(line)
elif correct(line) and pre:
r.write(line)
pre = False
else:
r.write(line)
pre = True
r.close()
NicholasПрофи (737) 4 месяца назад
Исходный код поместить в блокнот и сохранить с расширением exe?
Nikassaiop End Просветленный (41467) Nicholas, нет-нет, исходный запускать через компилятор. Если такой возможности или желания разбираться нет, тогда скачать exe по ссылке и запускать его, сохранив ваш текст перед работой в text.txt
Владимир Ворников Профи (926) 3 месяца назад
Создайте файл script.pl:
 use open qw(:std :utf8); 
while (<>) {
if ($_ =~ /^[\p{L}\w]+\W+[\p{L}\w]+/) {
$_ = ' ' x 4 . $_;
}
print;
}
Запуск:
 perl script.pl < "Ваш файл" 
Владимир ВорниковПрофи (926) 3 месяца назад
 perl script.pl < "Ваш файл" > "Результирующий файл" 
Похожие вопросы