У меня есть HTML-файл, полный адресов, которые мне нужно извлечь. Похоже, но с около 60 улиц, а также несколько номеров на каждой улицеИзвлечение данных из html-файла с помощью Java
<BR>
<Font Color=#FF0000 Size=7>MACARTNEY STREET (L)</Font>
<BR>
<BR>
10........<Font Color=#FFFFFF> CM </Font>
<BR>
<BR>
15........<Font Color=#FF0000> SH </Font>
<BR>
<BR>
43A.......<Font Color=#FFFFFF> CM </Font>
<BR>
Я использую регулярное выражение для извлечения данных, который работает лакомство для получения названия улиц
final Pattern STREETNAME = Pattern.compile("<Font Color=#FF0000 Size=7>(.+?)</Font>");
Matcher stMatcher = STREETNAME.matcher("");
while ((line = reader.readLine()) != null) {
stMatcher = STREETNAME.matcher(line);
if (stMatcher.find()) {
String street = stMatcher.group(1);
customerList.add(new Customer(street));}
//customerList is an array of Customer Objects, defined elsewhere in the program
но несмотря ни на что, я просто не могу заставить его прочитать номера домов (10, 15 и 43А в примере).
В идеале я хотел бы сохранить строку названия улицы, извлечь номер дома и объединить их вместе, прежде чем создавать объект клиента. Мне также нужно проверить линию CM или SH, но это может подождать.
У кого-нибудь есть идея, которая может помочь? Сейчас я довольно тупой.
Спасибо!
Вы должны использовать что-то вроде Jsoup вместо regex. http://jsoup.org/ –