Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Разбивка строки Split / 14 сообщений из 14, страница 1 из 1
07.09.2015, 20:08
    #39045295
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
Всем привет.
Ребята подскажите.
Есть строка </nobr, Закарпатская обл.</a, ее надо разбить чтобы получилось

Закарпатская

у меня есть код

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
 for (int i=0;i<parsCountry.size();i++) {
            String[] str = parsCountry.get(i).toString().split(">");
            listCountryFirst.add(str[3]);  
        }
        for (int i=0;i<listCountryFirst.size();i++) {
            String[] str = listCountryFirst.get(i).split("<");
            listCountryEnd.add(str[0]);
//            System.out.println(i+" Country= "+listCountryFirst);
        } 



как указать пробелы String[] str = parsCountry.get(i).toString().split(">");
...
Рейтинг: 0 / 0
08.09.2015, 08:46
    #39045445
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
Парсить HTML регулярными выражениями не очень хорошая идея.
...
Рейтинг: 0 / 0
08.09.2015, 09:36
    #39045490
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
Слово "парсить" не существует, поэтому "парсить" действительно неудачная идея. Регулярных выражений в этом некачественном примере нет (или можно сказать есть, но тривиальные), а "парсить" эту строку проще всего именно регулярным выражением. Я сразу не ответил потому, что приведённый пример интересующей части строки явно неточный.
Ну, объясняю как работает некачественный пример. Аффтар сначала делит строку на части по символам ">", берёт 4-ю по порядку, в которой очевидно содержится что-то закарпатское. Затем выполняет лишнюю операцию копирования результата в другой список. Затем просматривает другой список и делит строки из него на части по символу "<", чтобы отбросить хвост строки после закарпатского. Очевидно, что-то закарпатское содержится в первой из полученных частей, поэтому она и берётся в качестве результата. Однако результатом является "Закарпатская обл.", а нужно просто "Закарпатская". Этого можно добиться, дополнительно разбив результат по символу пробела.

Пример.
Код: java
1.
2.
3.
String s = "Закарпатская обл.";
String [] parts = s.split (" ");
System.out.println (parts[0]);


Результат: "Закарпатская".
В этом примере предполагается, что между "Закарпатская" и "обл." есть один пробел. Если их может быть несколько, то для их уловления можно применить настоящее регулярное выражение:
Код: java
1.
2.
3.
String s = "Закарпатская    обл.";
String [] parts = s.split ("([\\s]+)");
System.out.println (parts[0]);


Результат: "Закарпатская".
...
Рейтинг: 0 / 0
08.09.2015, 09:40
    #39045495
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
BlazkowiczПарсить HTML регулярными выражениями не очень хорошая идея.

Подскажите а какая идея самая лутшая для парсинга HTML.
...
Рейтинг: 0 / 0
08.09.2015, 09:42
    #39045498
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
mixon21Подскажите а какая идея самая лутшая для парсинга HTML.
HTML парсер, как ни странно.
http://stackoverflow.com/questions/2168610/which-html-parser-is-the-best
...
Рейтинг: 0 / 0
08.09.2015, 09:43
    #39045499
ferc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
mixon21BlazkowiczПарсить HTML регулярными выражениями не очень хорошая идея.

Подскажите а какая идея самая лутшая для парсинга HTML.

http://jsoup.org/
...
Рейтинг: 0 / 0
08.09.2015, 11:46
    #39045623
Partisan M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
Mixon21Подскажите а какая идея самая лутшая для парсинга HTML.

Никакая, поскольку слово "парсинг" не существует и следовательно ничего не означает. Поэтому про него не может быть идей.
Предлагаемые вам (как ни странно) "парсеры" создают DOM-модель HTML-документа. Спрашивается: а оно надо, всего лишь для извлечения слова "Закарпатская" из таблицы? Для чего достаточно добавить к вашему коду указанную мной строку. Иногда конечно DOM-модель бывает нужна, отчего и существуют эти, как некоторые неграмотно выражаются, парсеры (разборщики HTML). Но это надо самостоятельно решать, когда нужно использовать, а когда нет.
...
Рейтинг: 0 / 0
08.09.2015, 11:58
    #39045639
lleming
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
Partisan MСлово "парсить" не существует ...

Не будьте столь категоричны. Это уже вполне устоявшийся термин. Если такого слова не существовало бы то тогда вряд ли бы Вы и
я и многие другие, поняли что имел ввиду блазковиц

BlazkowiczПарсить HTML регулярными выражениями не очень хорошая идея.

Все таки намного быстрее написать "парсить" нежели "выполнить синтаксический анализ".
...
Рейтинг: 0 / 0
08.09.2015, 12:17
    #39045672
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
mixon21, твоя задача разбита на 2 фазы. 1) Парсинг собственно HTML документа
с использованием HTMLCleaner или JSoup (погугли сам их описание).
2) После получения ноды или элемента (или строки) которая лежит внутри
ее нужно разбить либо по SPACERS, CONTROLS если есть возможность
с использованием Apache String Utils либо подключить регулярки
(в том случае если тривиально не получается).

Слово парсинг объективно существует в рамках наших внутренних
девелоперских договорённостей и мы все прекрасно поняли о чём
идёт речь.

Учёным и специалистам в области анализа текста я предлагаю не спекулировать
на эту тему в этом форуме.
...
Рейтинг: 0 / 0
08.09.2015, 12:37
    #39045700
JDS
JDS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
Изврат )
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
String  st = "</nobr, Закарпатская обл.</a "
                   + "</nobr, Мурманская обл.<a "
                   + "</nobr, Краснодарский кр.<a"
                   + "</nobr, Коми-Пермяцкий автономный округ <a"
                   + "</nobr, Республика Мордовия <a";
        st = st.replaceAll("Республика", "");
        Pattern ptr = Pattern.compile("</nobr,\\s+[А-Яа-я]+(-[А-Яа-я]+)?");
        Matcher mtr = ptr.matcher(st);        
        while(mtr.find())
            System.out.println(mtr.group().replaceAll("</nobr,\\s+", "").trim());

...
Рейтинг: 0 / 0
08.09.2015, 18:02
    #39046136
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
llemingВсе таки намного быстрее написать "парсить" нежели "выполнить синтаксический анализ"."(с)делать разбор/разобрать" - тоже не очень длинно.
...
Рейтинг: 0 / 0
08.09.2015, 19:46
    #39046213
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
mixon21,

Код: java
1.
2.
String zakarpatskaya = "</nobr, Закарпатская обл.</a".replaceAll("[^Закарпатская]", "");
System.out.println(zakarpatskaya);
...
Рейтинг: 0 / 0
08.09.2015, 19:49
    #39046216
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
Usmanmixon21,

Код: java
1.
2.
String zakarpatskaya = "</nobr, Закарпатская обл.</a".replaceAll("[^Закарпатская]", "");
System.out.println(zakarpatskaya);

Со split 'ом тоже вроде работает (-:
...
Рейтинг: 0 / 0
08.09.2015, 22:58
    #39046291
mixon21
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбивка строки Split
Спасибо всем за отклики.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Разбивка строки Split / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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