и любые другие атрибуты.

аюсь получить текст в пределах определенного тега. Так что если у меня есть:

<a href="http://something.com">Found<a/>

Я хочу быть в состоянии получитьFound текст.

Я пытаюсь сделать это с помощью регулярных выражений. Я могу сделать это, если<a href="http://something.com> остается прежним, но это не так.

Пока у меня есть это:

Pattern titleFinder = Pattern.compile( ".*[a-zA-Z0-9 ]* ([a-zA-Z0-9 ]*)</a>.*" );

Я думаю, что последние две части -([a-zA-Z0-9 ]*)</a>.* - все в порядке, но я не знаю, что делать с первой частью.

 BeginnerPro07 янв. 2011 г., 19:24
спасибо за ответ, плохо смотрю в это = D, но я не делаю это для большого количества тегов html, это только для этого одного тега, который встречается 15 раз ... это все еще плохо?
 tchrist16 февр. 2011 г., 18:10
Регулярные выражения Java недостаточно мощны для анализа HTML; другие языки, однако, есть. Почему любой здравомыслящий человек будет использовать Java для работы с регулярными выражениями, совершенно вне моего понимания.
 ircmaxell07 янв. 2011 г., 19:05
Не разбирайте HTML с помощью регулярных выражений, Используйте правильный синтаксический анализатор XML / HTML ...

Ответы на вопрос(2)

 Bill the Lizard07 янв. 2011 г., 19:23
Это игнорируетhref и любые другие атрибуты.
Решение Вопроса

не используйте регулярные выражения для анализа HTML. Если вы знаете о недостатках, вы можете сойти с рук, хотя. Пытаться

Pattern titleFinder = Pattern.compile("<a[^>]*>(.*?)</a>", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
Matcher regexMatcher = titleFinder.matcher(subjectString);
while (regexMatcher.find()) {
    // matched text: regexMatcher.group(1)
} 

будет перебирать все совпадения в строке.

Это не справится с вложенным<a> теги и игнорирует все атрибуты внутри тега.

Ваш ответ на вопрос