Скрипт массовых замен в тексте

Статус
В этой теме нельзя размещать новые ответы.

Kosiak

Гуру форума
Регистрация
12 Сен 2006
Сообщения
627
Реакции
75
Необходим скрипт (желательно на PHP) делающий перестановки/подстановки в текстовом файле. Вероятно с помощью регулярок.

Например:
текст: (а,что) если
на выходе: a что, а если

текст: (воплотить,претворить,провести) в жизнь
на выходе: воплотить в жизнь, претворить в жизнь, провести в жизнь

текст: (по)правка
на выходе: поправка, правка

текст: смутчик,смутьян,зачинщик (мятежа),мятежник,
на выходе: смутчик,смутьян,зачинщик мятежа, зачинщик,мятежник,

Также скрипт должен уметь делать простые замены (ну этот функционал есть в любом текстовом редакторе:(
текст: a что, а если
на выходе: a что; а если

Либо удаления:
Задаём ключ и скрипт после его обнаружения удаляет все символы с начала ключа и до конца строки.

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

Если есть готовые варианты или программы - дайте знать, а если есть желание, то помогите с написанием. Сам не программист, могу только помочь с составлением алгоритма (уже продумывал про себя :))
 
Ы... синонимайзер... А нафига php-то?
 
Ну а чего, Perl? С PHP я хоть сам справлюсь, а чтобы что-то на перле запустить - мне ещё нужно тонну манов выкурить. А реализовывать приложением - это очень муторно - здесь делов-то строк 40 кода на PHP (наверное).
Это не синонимайзер, а разбор словарей (все, что мне встречались имели какие-либо дефекты, вот от них и хочу избавляться), хотя как синонимайзер использовать тоже можно будет, доработать только.
 
Можно на python ещё - довольно простой в изучении язык.
 
Да можно на чём угодно. Я написал про PHP, т.к. каждый день с ним сталкиваюсь и знаю как с ним работать - некоторые базовые моменты, с другими языками, кроме бэйсика в далёком детстве никак не связывался. На питоне так на питоне - если поможете со скриптом и покажете как с ним (с питоном) работать, только спасибо скажу :)
 
Набросочек на python:
Код:
# -*- coding: utf-8 -*-
import sys
import random
import re

RE_CHOICE = re.compile('\(([^\)]+)\)(\s*\S+)')

data = u"""
Меня мучает вопрос.
(А,Что) если бы люди умели (разговаривать,говорить,общаться) с птицами?
Ну, как они делают это (по накурке,во сне).
Они бы тогда могли (воплотить,претворить,провести) в жизнь самые дикие желания.
Научиться (летать,парить в облаках), петь, есть червяков.
Вот это (ерун)да!
"""

def choice_processor(match):
    choices = match.group(1).split(',')
    tail = match.group(2)

    if len(choices) == 1:
        choices.append('')

    return random.choice(choices) + tail

data = RE_CHOICE.sub(choice_processor, data)
print data

Далее читаешь маны и делаешь как надо :eek:)
 
ЭЭЭ.... и куда это вставлять? Про питон, как я говорил уже, я знаю только то, что он есть...
 
Ладно, забудь :)
 
PHP:
<?

$a = "(друг,товарищ), верь, (придет,прийдет) она - на (водку,воду,пиво) старая цена!";

$a = preg_replace_callback('#\((.+?)\)#is', 'sel', $a);

echo $a;

function sel($m) {
    $v = explode(',', $m[1]);
    $v = $v[array_rand($v)];
    return $v;
}

?>

ладно, пусть не совсем то, что надо, но направление правильное)
 
Да, может быть...
Но как минимум нужно, чтобы данные из файла брались, а не в скрипте прописывались...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху