У меня есть текстовый файл, содержащий несколько статей, которые мне нужно проанализировать.Regex в сканере находит только первое совпадение
Мне нужно получить каждое слово в каждой статье, за исключением полных остановок, запятых и т. Д. Статьи разделены двумя строками, и я пытаюсь использовать шаблон регулярных выражений, чтобы найти эти точки.
Пример документа выглядит следующим образом:
.I 1
.W
this is article one.
.I 2
.W
this is article two.
.I 3
.W
this is article three.
ниже код, кажется, находит первое вхождение .I 1
и добавить все последующие слова, но как только он попадает в следующий сепаратор он добавляет его как слово вместо того, чтобы пропустить его.
Scanner scanner = new Scanner(document);
scanner.useDelimiter("[^\\w']+");
String separator;
while (scanner.hasNext()){
separator = scanner.findInLine(Pattern.compile(".I \\d"));
if (separator!= null) {
System.out.println("Found: " + separator);
scanner.nextLine();
scanner.nextLine();
}
list.add(scanner.next());
}
scanner.close();
Если возможно, я также хотел бы иметь возможность захватить фактический номер изделия, который является числом, прикрепленным к каждому разделителю.
Что не так в моем коде?
Спасибо. В итоге я использовал вариант этого, не используя этот разделитель со сканером. Как только у меня была каждая строка, я использовал String.split с оригинальным регулярным выражением для получения каждого отдельного слова. – karoma