-1

範囲を検証する必要があります。入力は次の形式です。

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?

4

1 に答える 1

0

あなたは試すことができます

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

編集必要なものを推測しますが:

(?<func>\w+)\b(?<op>(between|contains))\b(?<first>\w+)\b(?<op2>(~~|and))\b(?<second>\w+)
于 2011-07-29T20:55:20.963 に答える