Используя регулярные выражения в коде Visual Studio, я пытаюсь найти поля в файле .bib (библиография c ссылки), в которых отсутствует одна из двух закрывающих фигурных скобок, за которыми следует поле Pagination. В файле .bib каждое поле заканчивается запятой и новой строкой. В приведенном ниже примере первое поле (Abstract
) соответствует этим критериям.
@jurisdiction{InternationalFruit:1972fo,
Abstract = {{Text with all kinds of punctuation.?},
Pagination = {paragraph},
Ecli = {EU:C:1972:115},
Keywords = {eu},
Number = {5},
Title = {{International Fruit Company NV}},
Year = {1972}}
Поэтому я попытался использовать отрицательный вид сзади, например:
\{\{[\s\S]*?(?<!\})\},\n\tPagination
Но это жадно : он будет включать в себя несколько полей в совпадении, пока не встретит поле, которое заканчивается одним \}
и за которым следует поле Pagination
.
Я думал, что первый ?
этого избежит. Может ли кто-нибудь сказать мне
- , как это сделать правильно, и
- , почему
?
не делает то, что, как я думал, будет здесь?