У меня есть набор данных, который выглядит как
I(0,123...789){
A(0,567...999){.......n=Marc.....}
B(2,655...265){..................}
C(3,993...333){..................}
M(8,635...254){.................;}
}
O(0,345...789){
A(0,567...999){.......n=Marc.....}
B(2,876...775){..................}
C(3,993...549){..................}
M(8,354...987){.................;}
}
I(0,987...764){
A(0,567...999){.......n=Marc.....}
B(2,543...265){..................}
C(7,998...933){..................}
M(8,645...284){.................;}
}
B(0,123...789){
.......
}
I(0,987...764){
A(0,567...999){.......n=John.....}
B(2,543...265){..................}
C(7,998...933){..................}
M(8,645...284){.................;}
}
Я пытаюсь вернуть все I "разделы", начиная с "I" до закрывающего тега, который следует после;}, но только еслиРаздел «I» содержит n = Marc.
До сих пор я пришел с
^([I]\(.*\){.*n=Marc.*^[M]\(.*;}.)}
https://regex101.com/r/VSuZh5/1
Однако в некоторых случаях, когда данные имеют шаблон, такой как
I(0,123...789){
A(0,567...999){.......n=Marc.....}
B(2,655...265){..................}
C(3,993...333){..................}
M(8,635...254){.................;}
}
O(0,345...789){
A(0,567...999){.......n=Marc.....}
B(2,876...775){..................}
C(3,993...549){..................}
M(8,354...987){.................;}
}
Регулярное выражение возвращает разделы I и O.Есть ли способ убедиться, что он всегда возвращает раздел I?
- извиняюсь за набор данных, он огромен и содержит много конфиденциальных данных, которые я не могу опубликовать. *