Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Парсить строку по маске - Программирование Android

18.09.2016, 11:30. Просмотров 247. Ответов 7
Метки нет (Все метки)

Гуру, подскажите инструмент!

Есть строка вида "фыва<asdf123>"йцук

Надо получить
1) начало строки "<asdf"
2) начало строки йцук
3) значение 123

Не по теме:


пытаюсь в Html.fromHtml добавить "понимание" ключа <back color=#FFFF00>pa</back>

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2016, 11:30     Парсить строку по маске
Посмотрите здесь:

Как парсить html? - Программирование Android
Привет! Я начинающий девелопер, вот я дошел до такого что мне нужно выдернуть информацию с HTML страницы. Узнал что эта штука называется...

Как правильно парсить? - Программирование Android
У меня есть следующая строка: Как с помощью JSON-парсера считать значение number с объекта order со значением 0 не перебирая их?...

Как парсить WebView? - Программирование Android
webView.loadUrl(&quot;file:///android_asset/test/index.html&quot;);ну вот так я его инициализирую, там работаю, что то делаю. А как потом получить у...

Подскажите как парсить HTML страницу - Программирование Android
Подскажите как парсить HTML страницу,мне надо с http://yandex.ru/ вывести все данные в текст,помогите,я новичёк,много форумов облазил но...

Как правильно парсить json с сервера - Программирование Android
Здравствуйте. У меня есть JSON, полученный с сервера, имеет приблизительно такой вид: В приложении будет два таба, в...

Правильно ли парсить html или создать api - Программирование Android
Всем привет! Есть сайт для заказа некоего товара, требуется написать приложение для него. Вопрос в следующем: что будет более...

Как парсить конкретные данные из общего класса? - Программирование Android
Здравствуйте!Я использую библиотеку jsoup для парсинга html страниц сайтов. Например если мне нужно получить значение из класса...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
18.09.2016, 12:07     Парсить строку по маске #2
Используйте substring
Ищите в строке символ <, например так:
Java
1
int index = myString.indexOf("<")
Индекс этого символа (счет идет с нуля) будет началом вашей субстроки "<asdf". Если эта субстрока имеет фиксированную длину и вы ее знаете, то легко получаете индекс первого символа 123. Значение можно выделить с помощью substring.
Свой йцук ищите примерно так же.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
18.09.2016, 12:44  [ТС]     Парсить строку по маске #3
Цитата Сообщение от Alexvp Посмотреть сообщение
myString.indexOf("<")
Как раз этого и хотел избежать! Это медленный метод...
Зубрю pattern и регулярные выражения...
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
18.09.2016, 15:23     Парсить строку по маске #4
Цитата Сообщение от Tester64 Посмотреть сообщение
Зубрю pattern и регулярные выражения
Было бы любопытно потом посмотреть на ваше решение.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
18.09.2016, 18:31  [ТС]     Парсить строку по маске #5
Цитата Сообщение от Alexvp Посмотреть сообщение
Было бы любопытно потом посмотреть на ваше решение.
Похоже у регулярок есть ограничения... Вынужден вернутся к методу int index = myString.indexOf("<")
Успешно добавил фон. Даже смог добавить фону прозрачность, но потерял возможность менять шрифт. Теперь решил ПОЛНОСТЬЮ свой парсер html-строки написать... Через рекурсивный поиск подстрок.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
20.09.2016, 15:07     Парсить строку по маске #6
Java
1
2
3
4
5
6
7
8
9
Pattern pattern = Pattern.compile(""фыва(<\\D+)(\\d+)>"(.*)");
Matcher matcher = pattern.matcher(""фыва<asdf123>"йцук");
if (matcher.matches()) {
    System.out.println(matcher.group(1));
    System.out.println(matcher.group(2));
    System.out.println(matcher.group(3));
}
else
    System.out.println("Не найдено");
Pablito
2419 / 1864 / 583
Регистрация: 12.05.2014
Сообщений: 6,604
Завершенные тесты: 1
20.09.2016, 15:08     Парсить строку по маске #7
просто оставлю это здесь https://jsoup.org/
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2016, 17:31     Парсить строку по маске
Еще ссылки по теме:

Подскажите как правильно парсить HTML страницу - Программирование Android
Код у меня уже имеется но я так и не разобрался с document.select(&quot;&quot;); у меня только title получается парсить,но как например парсить такой...

Sqlite выборка по маске - Программирование Android
Подскажите, имеется ли в sqlite возможность выборки данных по маске? Например (для SQL Server), select * from words where word like 'И_'.

Клиент для форума IP board 3.0.1. api нет. Стоит ли парсить весь форум - Программирование Android
Нужно написать клиент для форума. IP board 3.0.1. api нет. Стоит ли парсить весь форум(или его xml)?или есть способы попроще? Если...

Запустил парсер, но он читает лишь заголовок, что добавить чтобы можно парсить весь сайт? - Программирование Android
import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import...

Как парсить строку? - MySQL
Здравствуйте, ув. форумчане!!! Подскажите пожалуйста как пропарсить строку с помощью запросов! Есть поле(Message), добавляются строки в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
20.09.2016, 17:31  [ТС]     Парсить строку по маске #8
Цитата Сообщение от Rube Посмотреть сообщение
Pattern pattern = Pattern.compile(""фыва(<\\D+)(\\d+)>"(.*)");
Пробовал... вполне получилось. Но конечная цель в Html.fromHtml добавить "понимание" ключа <back color=#FFFF00>pa</back>. При этом не потеряв все остальные ключи!!! А через регулярку теряю!

Часто в кнопках, текствювах меняю часть текста особым цветом, размером. Очень удобно задавать текст прямо строкой. СИЛЬНО не хватает возможности выделить часть текста ФОНОМ! Html.fromHtml не поддерживает этого тега! Можно вручную (добавляя командами раскарску через res.setSpan(new BackgroundColorSpan(0x88FF8800), 1, 5, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)) , но тогда считать начало/конец надо. Вот ради этих "расчетов" я и пишу парсер...

Пытаюсь свой парсер написать!
HTML5
1
2
3
<font color=#[6-8 хекс символов]>текст</font>
<back color=#[6-8 хекс символов]>текст</back>
<b>текст</b>
...и т.д.

через регулярку успешно поймал когда только один тег! А мне нужно и когда идут ВЛОЖЕННЫЕ друг в друга!

HTML5
1
<back color=#880088>текст<font color=#880088>те<b>кс</b>т</font> <font color=#880088>текст</font></back>
p.s. бонусом уже обнаружил, что вручную можно задавать прозрачность фону и тексту... и когда-то получалось картинки добавлять...
Yandex
Объявления
20.09.2016, 17:31     Парсить строку по маске
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru