Хотя ответы, которые вы не можете проанализировать HTML с регулярными выражениями, верны, они не применяются здесь. OP просто хочет проанализировать один тег HTML с регулярными выражениями, и это то, что можно сделать с помощью регулярного выражения.
Предлагаемое регулярное выражение неверно:
<([a-z]+) *[^/]*?>
Если вы добавите что-то в регулярное выражение, путем обратного отслеживания его можно заставить сопоставить такие глупые вещи, как <a >>
, [^/]
слишком разрешительно. Также обратите внимание, что <space>*[^/]*
является избыточным, поскольку [^/]*
также может соответствовать пробелам.
Мое предложение было бы
<([a-z]+)[^>]*(?<!/)>
Где (?<! ... )
(в Perl-регулярных выражениях) отрицательный внешний вид. Он читает «a», затем слово, а затем все, что не является>, последнее из которых не может быть /, а затем> «.
Обратите внимание, что это позволяет такие вещи, как <a/ >
( как и исходное регулярное выражение), поэтому, если вы хотите что-то более ограничительное, вам нужно создать регулярное выражение для соответствия парам атрибутов, разделенных пробелами.
Проблема в том, что вы не находитесь в потоке пользовательского интерфейса, когда вызываете okButton.setVisibility (View.VISIBLE);
, поскольку вы создать и запустить свой собственный поток. Что вам нужно сделать, так это получить обработчик кнопки и установить видимость через поток пользовательского интерфейса, который вы получаете через обработчик.
Итак, вместо
okButton.setVisibility(View.VISIBLE)
вы должны ввести
okButton.getHandler().post(new Runnable() {
public void run() {
okButton.setVisibility(View.VISIBLE);
}
});