Наличие нескольких режимов в потоке Java 8 для чтения текста из строкиJAVA

Программисты JAVA общаются здесь
Anonymous
Наличие нескольких режимов в потоке Java 8 для чтения текста из строки

Сообщение Anonymous »

Я хочу иметь более одного регулярного выражения, как ниже, как я могу добавить это в итератор Flatmap, чтобы поместить все соответствующие значения линии для списка во время одного потока? < /p>

static String reTimeStamp="((?:2|1)\\d{3}(?:-|\\/)(?:(?:0[1-9])|(?:1[0-2]))(?:-|\\/)(?:(?:0[1-9])|(?:[1-2][0-9])|(?:3[0-1]))(?:T|\\s)(?:(?:[0-1][0-9])|(?:2[0-3])):(?:[0-5][0-9]):(?:[0-5][0-9]))";
static String reHostName="host=(\\\")((?:[a-z][a-z\\.\\d\\-]+)\\.(?:[a-z][a-z\\-]+))(?![\\w\\.])(\\\")";
static String reServiceTime="service=(\\d+)ms";

private static final PatternStreamer quoteRegex1 = new PatternStreamer(reTimeStamp);
private static final PatternStreamer quoteRegex2 = new PatternStreamer(reHostName);
private static final PatternStreamer quoteRegex3 = new PatternStreamer(reServiceTime);

public static void main(String[] args) throws Exception {
String inFileName = "Sample.log";
String outFileName = "Sample_output.log";
try (Stream stream = Files.lines(Paths.get(inFileName))) {
//stream.forEach(System.out::println);
List timeStamp = stream.flatMap(quoteRegex1::results)
.map(r -> r.group(1))
.collect(Collectors.toList());

timeStamp.forEach(System.out::println);
//Files.write(Paths.get(outFileName), dataSet);
}
}
< /code>

Этот вопрос является расширением от соответствия шаблона и запишите поток в файл с помощью Java 8 Stream < /p>

Подробнее здесь: https://stackoverflow.com/questions/461 ... -from-line

Вернуться в «JAVA»