Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Удаление сложной подстроки между двумя подстроками или очистка потока данных / 16 сообщений из 16, страница 1 из 1
23.11.2012, 17:09:50
    #38051021
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
Всем привет. У меня стоит задача очистки потока данных от ненужных слов и символов. replace мне не помогает, т.к. это будет очень длинный replace ВРОДЕ:
Код: java
1.
adjusted.replaceAll("\\s*\\bif\\b\\s*", "").replaceAll("\\s*\\bvar\\b\\s*", "") ............................................;


Как бы вы чистили поток вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Наименование
adupd: 120000,
al: parseInt('4') || 4,
id: 0,
intnat: '' ? true : false,
lang: 0,
rtl: parseInt('') || 0,
version: 11247,
ip_h: '393465c78c9a4e',
vc_h: 'e5494763f438444149db50a6de3',
navPrefix: '/',
dt: parseInt('') || 0,
fs: parseInt('11') || 11,
ts: 1353674562,
pd: 0,
pads: 1,
time: [2012, 11, 23, 16, 42, 42]
Дата:
12.11.2012
Нужно удалить текст между
Код: plaintext
Наименование
и
Код: plaintext
Дата:
Заранее спасибо за советы и примеры кода. =))
...
Рейтинг: 0 / 0
23.11.2012, 17:18:02
    #38051042
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
Читаешь reader-ом как текстовый файл и скипаешь всё что содержит ":" в середине.
...
Рейтинг: 0 / 0
23.11.2012, 17:20:44
    #38051048
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
А если одной заменой, типа такого:
Код: java
1.
adjusted.replaceAll("(Наименование)*(Дата:*)", "$1...$2");

(троеточие - это то, что надо вставить вместо удаляемой подстроки - перевод строки или какие-то символы).
...
Рейтинг: 0 / 0
23.11.2012, 17:26:34
    #38051061
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
Я исхожу из того что файл может быть произвольного размера (более гигабайтов)
и закладываю оптимизацию уже на этом этапе.
...
Рейтинг: 0 / 0
23.11.2012, 17:27:20
    #38051066
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
такое уже тут было не так давно, ищите.
...
Рейтинг: 0 / 0
23.11.2012, 17:30:14
    #38051071
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
читать лучше посимвольно, накапливать символы и анализировать,не получилось ли слово с которого надо начать удаление, пропустить все что дальше, попутно таким же способом выискивая, не сложилась ли последовательность в слово на котором нужно остановиться.
...
Рейтинг: 0 / 0
23.11.2012, 17:33:22
    #38051075
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
maytonЯ исхожу из того что файл может быть произвольного размера (более гигабайтов)
файл действительно может быть более гигабайта и дело в том что в нем может встретится следующее (без ":"):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
setTimeout(qinit, 0);
}
qf.onsubmit = function() {(!ge('quick_login_frame')) return false;(!trim(qe.value)) {
notaBene(qe);
return false;
} else(!trim(qp.value)) {
notaBene(qp);
return false;
...
Рейтинг: 0 / 0
23.11.2012, 17:35:10
    #38051077
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
May12,

извините, если ввела в заблуждение первым постом.
...
Рейтинг: 0 / 0
23.11.2012, 17:56:24
    #38051115
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
IDVsbruck(троеточие - это то, что надо вставить вместо удаляемой подстроки - перевод строки или какие-то символы).

String STR = "Наименование adupd: 120000, al: parseInt('4') || 4, id: 0, intnat: '' ? true : false, lang: 0, Дата: 12.11.2012";
System.out.println(STR.replaceAll("(Наименование)*(Дата:*)", "$1...$2"));


Не работает. Что не так делаю?
...
Рейтинг: 0 / 0
23.11.2012, 18:04:18
    #38051127
javapecker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
May12,
Что не так делаю?
используете String на гигабайтных файлах.
...
Рейтинг: 0 / 0
23.11.2012, 18:10:32
    #38051134
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
javapeckerMay12,
Что не так делаю?
используете String на гигабайтных файлах.

в файл валятся строки, из этих строк нужно вырезать подстроку, которая находиться между двумя словами (см. выше). Я имела в виду, что файл в который валятся строки может получиться достаточно большим.
...
Рейтинг: 0 / 0
23.11.2012, 18:27:26
    #38051152
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
May12IDVsbruck(троеточие - это то, что надо вставить вместо удаляемой подстроки - перевод строки или какие-то символы).

String STR = "Наименование adupd: 120000, al: parseInt('4') || 4, id: 0, intnat: '' ? true : false, lang: 0, Дата: 12.11.2012";
System.out.println(STR.replaceAll("(Наименование)*(Дата:*)", "$1...$2"));

Не работает. Что не так делаю?
Сорри, точку забыл ...
Код: java
1.
2.
String STR = "Наименование adupd: 120000, al: parseInt('4') || 4, id: 0, intnat: '' ? true : false, lang: 0, Дата: 12.11.2012";
System.out.println(STR.replaceAll("(Наименование).*(Дата:*)", "$1...$2"));

Выдает "Наименование...Дата: 12.11.2012".
...
Рейтинг: 0 / 0
23.11.2012, 18:32:49
    #38051159
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
IDVsbruck,
Спасибо. Я "выпрямила" весь набор символов в строку и буду удалять от туда то что находиться между указанными подстроками.
...
Рейтинг: 0 / 0
23.11.2012, 20:14:50
    #38051266
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
А зачем "выпрямлять"? - Регулярка сама удалит.
...
Рейтинг: 0 / 0
23.11.2012, 20:18:13
    #38051270
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
IDVsbruck,

Привет еще раз. Я билась, но не смогла найти как используя один replaceAll удалить сразу две подстроки?
Ну т.е. я предполагаю, что синтаксис должен быть может следующим:

Код: java
1.
STR.replaceAll(["помоги", "тупой", "учиться"], ""); 



но не получается (не нагуглила).
...
Рейтинг: 0 / 0
23.11.2012, 20:20:52
    #38051274
May12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Удаление сложной подстроки между двумя подстроками или очистка потока данных
IDVsbruckА зачем "выпрямлять"? - Регулярка сама удалит.

ну я в общем это "выпрямление" через вот такую конструкцию сделала:
Код: java
1.
STR.replaceAll("(?m)^[ \t]*\r?\n", "")



это видимо то, что называется "регулярка".... циркулярка. хихи!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Удаление сложной подстроки между двумя подстроками или очистка потока данных / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]