У меня довольно длинный шаблон регулярных выражений.Вот только часть этого:
string pattern = @"((?<!top=)(?<![A-Za-z])\d)+";
Учитывая строку:
date(Account/AccountClose) gt 2019-03-25 and Brg eq '100'&$select=IdAccountCurrent&$skip=10&$top=10
Это соответствует 2019, 03, 25, 100, 10 and 0
.
Я хочу исключить последний 0
из результата сопоставления.Другими словами, все цифры, за которыми следует top=
, не должны совпадать.
Мое решение работает только при наличии одной цифры после top=
. Как мне достичь желаемого результата?
regex101 пример
ОБНОВЛЕНИЕ: К сожалению, предложенные решения не подходят для всего шаблона.Я пытался сделать мой пример простым, но, похоже, это невозможно.
Итак, весь мой шаблон регулярных выражений:
string pattern = @"((?<!top=)(?<![A-Za-z])\d|-|T\d+|:|\.|\+|(?<=\d)Z)+|\bfalse\b|\btrue\b|\bnull\b|'[^']+'|\(['\d][^\)]+\)";
Мне нужно отредактировать этот шаблон, чтобы исключить все цифры сразу после top=
.
весь мой пример (см. Последнюю строку в этом примере, последние 0
не должны совпадать)