Java Regex для получения текста из тегов привязки HTML (<a> ... </a>) - PullRequest
6 голосов
/ 07 января 2011

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

<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>.* - в порядке, но я не знаю, что делать с первой частью.

Ответы [ 2 ]

6 голосов
/ 07 января 2011

Как они сказали, не используйте регулярные выражения для разбора 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> и игнорирует все атрибуты внутри тега.

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