Заполнить маску RegExp в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Заполнить маску RegExp в Java

Сообщение Гость »


I have 100 RegEx masks like:

Код: Выделить всё

Service - (?Start|End) (?\w*) - (?[0-9-]{10})(?: - (?.*))?
to search for something, when a RegEx finds something I extract the data to compose another (closing) sentence to search for

Код: Выделить всё

Service - End Foo - 2024-03-09
When searching for the closure I cannot use RegEx because it could find me another opening with different data.
So I need in java to compose a sentence by replacing the data I retrieved inside the RegEx mask. There is a way in java?
Thank You
Example (I don't implement here all method):

Код: Выделить всё

public class Main {
public static void main(String[] args) {
List rowsData = new ArrayList();
List masks = new ArrayList();

loadData(rowsData);
loadMasks(masks);

for (var data : rowsData) {
String mask = findMask(data, masks);

if (masks != null) {
Map values = getValues(data, mask);

var endSentence = prepareOutcome(mask, values);

for (var endData : rowsData) {
if (endData.contains(endSentence)) {
System.out.println("End found at " + rowsData.indexOf(endData));
return;
}
}

System.out.println("End not found");
}
}

System.out.println("Finish Searching");
}

private static String prepareOutcome(String mask, Map values) {
// TODO: What can I do?

var stringToSearch = "Service - End Foo - 2024-03-09";
return stringToSearch;
}

private static void loadMasks(List masks) {
masks.add("Service - (?Start|End) (?\\w*) - (?[0-9-]{10})(?: - (?.*))?");
//... other Masks
}

private static void loadData(List rowsData) {
//... Other Data
rowsData.add("Service - Start Foo - 2024-03-09");
rowsData.add("Service - Start Foo - 2024-03-10");
rowsData.add("Service2 - Foo something Bar - Start");
// Other Data
rowsData.add("Service - End Foo - 2024-03-10 - Outcome KO");
rowsData.add("Service2 - Foo something Bar - End");
rowsData.add("Service - End Foo - 2024-03-09 - Outcome OK");
}

private static String findMask(String data, List masks) {
return "Service - (?Start|End) (?\\w*) - (?[0-9-]{10})(?: - (?.*))?";
}

private static Map getValues(String data, String mask) {
Map values = new HashMap();
values.put("status", "Start");
values.put("etl", "Foo");
values.put("date", "2024-03-09");

return values;
}


Источник: https://stackoverflow.com/questions/781 ... sk-in-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Заполнить маску RegExp в Java
    Гость » » в форуме JAVA
    0 Ответы
    29 Просмотры
    Последнее сообщение Гость
  • Шаблон regexp regexp JS с функцией EXEC не работает
    Anonymous » » в форуме Html
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Шаблон regexp regexp JS с функцией EXEC не работает
    Anonymous » » в форуме Html
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Вперед заполнить матрицу/маску Numpy значениями на основе условия
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Вперед заполнить матрицу/маску Numpy значениями на основе условия
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

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