2015-07-15 2 views
0

Я Тринг, чтобы извлечь имя шрифта лица, например:Как извлечь тег шрифта из HTML?

String htmlContent = "<font face=\"impact\">Hdjdjdisid <font style=\"background-color:#ff0000\"> shejej</font></font>"; 

к:

impact 

Это то, что я нашел в Интернете, но это возвращение всех содержимых тегов и я хочу только имя face.

String pattern = "<FONT (.*?)>"; 

Pattern p = Pattern.compile(pattern, Pattern.CASE_INSENSITIVE); 
Matcher m = p.matcher(htmlContent); 

if (m.find()) { 
    // prints: <FONT FACE="Verdana" SIZE="12"> My Name is xyz </FONT></P> 
    System.out.println(m.group()); 

    // prints: FACE="Verdana" SIZE="12" 
    System.out.println(m.group(1)); 
} 

Как я могу извлечь только имя лица?

+3

Почему вы не используете парсер HTML, такой как jsoup? – fge

+1

* [Даже Джон Скит не может анализировать HTML, используя регулярные выражения.] (Http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454) * – Selvin

+0

jsoup extract elements http://stackoverflow.com/questions/19831558/jsoup-how-to-extract-every-elements – Satya

ответ

2

В этом простом случае, настроить шаблон так:

<font[^>]+face="([^"]+)" 

спасся для использования с Java:

String pattern = "<font[^>]+face=\"([^\"]+)\""; 

Но, как другие указали: Не синтаксический анализ HTML с регулярным выражением.

+0

Большое спасибо !!!! –

Смежные вопросы