Что такое шаблон Regex для тега HTML в Java или Android? - PullRequest
0 голосов
/ 11 марта 2010

у меня есть этот тег в качестве входного тега:

<a href="controller.jsp?sid=127490C88DB5&R=35144" class="11-link-dkred-bold"><b>Mr. John Q. Anderson&nbsp;&nbsp;&nbsp;MBA 1977 E</a>

в этом я хочу получить значение

г. Джон Q. Андерсон MBA 1977 E

Ват является значением patten для этого в регулярном выражении?

Ответы [ 2 ]

8 голосов
/ 11 марта 2010

Это Очень плохая идея TM для анализа HTML с помощью регулярных выражений, поскольку это не обычный язык. Вам лучше запустить это через tidy (чтобы очистить его), а затем использовать синтаксический анализатор XML или использовать XPath.

В противном случае, соответствующий шаблон с захватами:

<.*?>\([^<]+\)</.*?>

EDIT

Я только что заметил, что ваш HTML неправильно сформирован! У вас нет закрывающего тега </b>. Регулярное выражение, которое я вам дал, будет работать только в том случае, если вы пометите текст одним тегом. Это не сработает для вашего примера. При условии, что у вас всегда будет тег <b>...</b> внутри, вы можете сделать:

<.*?><b>\([^<]+\)</b></.*?>
2 голосов
/ 11 марта 2010

Я предлагаю использовать NekoHTML или другую альтернативу, см., Например, http://www.benmccann.com/blog/java-html-parsing-library-comparison/

Если вы хотите разобрать его самостоятельно, используйте ANTLR или JavaCC или что-то подобное Чтобы сделать это правильно, вам нужна мощная грамматика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...