Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
#1

Парсить строку по маске

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

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

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

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

Не по теме:


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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2016, 11:30
Ответы с готовыми решениями:

Как правильно парсить?
У меня есть следующая строка: Как с помощью JSON-парсера считать значение...

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

Как парсить WebView?
webView.loadUrl(&quot;file:///android_asset/test/index.html&quot;);ну вот так я его...

Как парсить значения между тегами?
В общем задание такое: нужны курсы валют отсюда Ссылка . Как можно их спарсить?...

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

7
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 390
18.09.2016, 12:07 #2
Используйте substring
Ищите в строке символ <, например так:
Java
1
int index = myString.indexOf("<")
Индекс этого символа (счет идет с нуля) будет началом вашей субстроки "<asdf". Если эта субстрока имеет фиксированную длину и вы ее знаете, то легко получаете индекс первого символа 123. Значение можно выделить с помощью substring.
Свой йцук ищите примерно так же.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
18.09.2016, 12:44  [ТС] #3
Цитата Сообщение от Alexvp Посмотреть сообщение
myString.indexOf("<")
Как раз этого и хотел избежать! Это медленный метод...
Зубрю pattern и регулярные выражения...
0
Alexvp
111 / 75 / 8
Регистрация: 03.08.2014
Сообщений: 390
18.09.2016, 15:23 #4
Цитата Сообщение от Tester64 Посмотреть сообщение
Зубрю pattern и регулярные выражения
Было бы любопытно потом посмотреть на ваше решение.
0
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
18.09.2016, 18:31  [ТС] #5
Цитата Сообщение от Alexvp Посмотреть сообщение
Было бы любопытно потом посмотреть на ваше решение.
Похоже у регулярок есть ограничения... Вынужден вернутся к методу int index = myString.indexOf("<")
Успешно добавил фон. Даже смог добавить фону прозрачность, но потерял возможность менять шрифт. Теперь решил ПОЛНОСТЬЮ свой парсер html-строки написать... Через рекурсивный поиск подстрок.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
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("Не найдено");
0
Pablito
2707 / 2154 / 731
Регистрация: 12.05.2014
Сообщений: 7,521
Завершенные тесты: 1
20.09.2016, 15:08 #7
просто оставлю это здесь https://jsoup.org/
0
Tester64
396 / 357 / 46
Регистрация: 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. бонусом уже обнаружил, что вручную можно задавать прозрачность фону и тексту... и когда-то получалось картинки добавлять...
0
20.09.2016, 17:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2016, 17:31

Подскажите как парсить HTML страницу
Подскажите как парсить HTML страницу,мне надо с http://yandex.ru/ вывести все...

Ошибка при попытке парсить JSON
Здравствуйте. Разбираюсь с Retrofit, возникает ошибка когда в строке которую...

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


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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