Zenno работа со строками

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Необходимо текст разбить по разделителям (,|.|!)
Исходный текст:
К сожалению, даже несмотря на установку в самой дешевой версии (с Wi-Fi) 8 ГБ памяти, она не будет стоить в Европе 200—300 долларов, как это предполагалось ранее. Установленная на нее цена в Германии — 249 евро (это примерно 323 доллара или 10 000 рублей по текущему курсу).
Для того чтобы получить в итоге
К сожалению,
даже несмотря на установку в самой дешевой версии (с Wi-Fi) 8 ГБ памяти,
она не будет стоить в Европе 200—300 долларов,
как это предполагалось ранее.
Установленная на нее цена в Германии — 249 евро (это примерно 323 доллара или 10 000 рублей по текущему курсу).
Подскажите, куда копать?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
А если через замену каждый прогнать? Например точку . заменить на
.{-String.Enter-}
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Думал об этом, но нужно сохранить саму структуру текста, так что не пойдет.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Да, понял сейчас что каждый знак отработает.

Других вариантов не предложу.
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Есть регулярное выражение
([А-ЯA-Z]((!|.|?)|[^?!.\(]|\([^\)]*\))*[.?!])
Но при тестировании программа зависает на тесте.
Да и с запятой будут проблемы...
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Разбите строк реализовал.
Вопрос следующий.

Если
Строка 1 содержит "1", тогда записать [str_1]
Строка 2 содержит "2", тогда записать [str_2]
Строка 3 содержит "3", тогда записать [str_3]
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Как насчет поделиться решением?)

Добавляйте текст в список с разделителем переноса строки. И уже построчно проверяете данные.
 
  • Спасибо
Реакции: Atom

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Решение довольно примитивное и требует дополнительных условий для обработки. Но так как тексты по своей структуре довольно примитивные, то на данном этапе условий практически не требуется.

Получаем текст, делаем замену . на [.] , на [,]
Симоволы [] не встречааются в тексте, так что использовать их можно.

После обрабатываем текст по регулярке, где строка должна заканчиватся "["
Теряется последнее предложение, но в целом результат меня устраивает.
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Все таки запутался я со сравнением...
Вернемся к задаче
Строка 1 содержит "1", тогда записать [str_1]
Строка 2 содержит "2", тогда записать [str_2]
Строка 3 содержит "3", тогда записать [str_3]
Строки успешно положил во временный список, начинаю обрабатывать пострострочно, завожу переменную первой строки, и тут ступор..
Как быть с условием для поиска.

Поисковые фразы "1","2","3" хранятся в трех отдельных списках поиска

Список1 Содержимое:
1
один
one
fist

Список 2 Содержимое:
2
два
two
twain

Список 3 и последующие по аналогии..

P.S. Пример с цифрами для образца, на самом деле задача более чем интересная)
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Есть запасная мысль реализовать так...
Завести переменную взятия строки из списков.
str_{№ списка}_{№ строки}
Сравнивать построчно.
text_1 равен или нет str_{№ списка}_{№ строки}
Но тут по-видимому придется вводить временные файлы.. и скорость обработки будет не очень...

и как создать условие "содержит"?
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Вопрос открытый, как все же сравнить строку по слову?
 

Atom

Client
Регистрация
03.08.2012
Сообщения
77
Благодарностей
7
Баллы
8
Хотелось бы получить совет, спасибо!
 

Devostator

Client
Регистрация
17.09.2011
Сообщения
230
Благодарностей
19
Баллы
18
Сделай замену ", " на ",{-String.Enter-}" ; "! " на "!{-String.Enter-}" и замену по регулярке "\." на "\.{-String.Enter-}".

Или я не так понял?
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)