В основном я программист SQL с небольшим опытом работы с Java.
Я не собираюсь утомлять вас всем написанным мной кодом, который работает до сих пор. Но на данный момент я пытаюсь извлечь данные с сайта фондовой биржи и поместить эти данные в файл, который я создаю в формате CSV.
Я извлекаю построчно html-код, который использует td и /td для открытия и закрытия столбцов. Я хочу получить данные между знаком «Больше чем» и знаком «Меньше», а затем перейти к следующему. Просто пытаюсь понять это, не делая это слишком сложным.
Опишите ожидаемые и фактические результаты:
Итак, если у меня есть
<td class = "blah" class = "blah">STOCK</td><td class = "blah" class = "blah">STOCK COMPANY NAME</td>
Я хочу захватить STOCK в строку, а затем ИМЯ АКЦИОНЕРНОЙ КОМПАНИИ.
Все, с чем мне нужна помощь, это код между > ***** < ... не более того, потому что я наслаждаюсь процессом обучения ... просто застрял на несколько часов.
рассмотрите возможность использования jsoup




Вы можете использовать регулярное выражение с просмотром назад и просмотром вперед — (?<=>).*?(?=<).(?<=>) означает, что ему предшествует больше, чем символ.*? соответствует любому количеству символов, не жадный(?=<), за которым следует символ "меньше"
String input = "<td class=\"blah\" class=\"blah\">STOCK</td><td class=\"blah\" class=\"blah\">STOCK COMPANY NAME</td>";
Matcher matcher = Pattern.compile("(?<=>).*?(?=<)").matcher(input);
List<String> res = new ArrayList<>();
while (matcher.find()) res.add(matcher.group());
res = res.stream().filter(s -> !s.isEmpty()).collect(Collectors.toList()); //remove empty strings
System.out.println(res);
Вывод
[STOCK, STOCK COMPANY NAME]
Примечание: лучше использовать парсер HTML, например суп.
Я не думаю, что он хочет регулярное выражение. Он новичок в Java, желающий изучить основные операции со строками.
рассмотрите возможность использования селена