RegEx слишком жадный - PullRequest
       18

RegEx слишком жадный

0 голосов
/ 30 июля 2011

У меня есть требование для проверки диапазона.Входные данные имеют следующий формат:

string example1 = "anydate between 20100101 ~~ 20100101";
string example2 = "anydate between 20100101 and 20100101";
string example3 = "docid between 1 ~~ 2";

Я использую следующее регулярное выражение:

\b(\w)*(?<operator>Between|contains)\b(?<prefix>.*).*?(?<OP>~~|and)[  ]?\b(?.*)\b

Когда пользователь вводит "anydate between 20100101 ~~ 20100101 and test1", он терпит неудачу и захватывает до test1.

Как сделать мое регулярное выражение менее жадным и только будущим до 20100101?

1 Ответ

0 голосов
/ 30 июля 2011

Вы можете попробовать

anydate\b(?<op>(between|contains))\b(?<first>[0-9]*)\b(?<op2>(~~|and))\b(?<second>[0-9]*)

edit Гадать на то, что нужно, но:

(?<func>\w+)\b(?<op>(between|contains))\b(?<first>\w+)\b(?<op2>(~~|and))\b(?<second>\w+)
...