2013-07-16 1 views
0

Я внедрил AsyncTask, где регулярное выражение, предоставленное пользователем, используется для сопоставления огромных данных html-кода. Однако, поскольку в некоторых регулярных выражениях содержится много кванторов/обратного отслеживания, Matcher.find() становится бесконечным.Android - Matcher.find() infin

Я пытался использовать InterruptibleCharSequence представлены здесь: How to terminate Matcher.find(), when its running too long?, но мне кажется, что Шара никогда не дозвонился, поэтому никогда не прерывался. Мое последнее предположение - создать новый процесс, чтобы запустить эту процедуру регулярного сопоставления, а затем убить ее, когда поиск отменен. Однако у меня есть проблема с совместным использованием объектов между сервисом и активностью из-за разных процессов.

ответ

-2

Синтаксический HTML с использованием регулярных выражений является плохой идеей, см: Parsing Html The Cthulhu Way

насчет разбора DOM вместо этого? Я попробовал jsoup некоторое время назад и нашел, что это довольно аккуратно для работы.