Регулярное выражение Java для html тегов

158
04 июля 2019, 03:00

Помогите, пожалуйста, не могу найти слова в строке с помощью регулярки. Пробовала вот так:

Pattern d = Pattern.compile("(?<=(<th class=\"plainlist\")(.>)) 
([\\s\\S]*)(?=<\\/th>)");

Строка вот такая:

<th class="plainlist" style="min-width:9em; background:#eaecf0; 
vertical-align:top; padding-left:.5em; padding-right:.5em;">Род 
деятельности</th><th class="plainlist" style="min-width:9em; 
background:#eaecf0; vertical-align:top; padding-left:.5em; padding- 
right:.5em;">Язык произведений</th> 
<td class="plainlist">
<span class="no-wikidata" data-wikidata-property- 
id="P1412">русский</span></td>
</tr>

Нужно, чтобы вывело просто два слова: род деятельности

Моя регулярка исключает теги, но не их внутренности в скобках. Помогите, пожалуйста, разобраться. Что я делаю не так? Нужно, чтобы регулярка находила только то, что в тегах th.

Answer 1

Попробуйте следующее регулярное выражение:

'<th[^>]+\\>([^<]+)\\<\\/th>'

См. пример использования этого выражения.

Pattern p = Pattern.compile("<th[^>]+\\>([^<]+)\\<\\/th>");
Matcher m = p.matcher(html); // html - ваша html-строка
System.out.println(m.find() ? m.group(1) : "no match");
READ ALSO
Как удалить из Map по дате рождения

Как удалить из Map по дате рождения

Надо удалить из словаря всех людей, родившихся летомпопытался через contains() не принимает

143
Вычисление размера mp3 фрейма

Вычисление размера mp3 фрейма

Пытаюсь разобраться в mp3 файлах, почитал вот эту статейку

142
Построение графика функции в java

Построение графика функции в java

ищу способ как в java по заданой формуле, например sin(x) построить графикПример:

160