0

正規表現は頭が痛くなります。誰か私のためにこれを解決できますか?

C# では、次のように呼び出して true を期待しています。

( ) と & の前の \ の影響の意味についても簡単に説明します。

var isValid = Regex.IsMatch(
     "from=20100101&to=20121231",
     "^(from=)([0-9]{6})\\&to=([0-9]{6})$"
);
4

3 に答える 3

3

これを試して:

^from=(\d{8})&to=(\d{8})$
于 2012-08-24T22:33:49.693 に答える
2

これはtrueを返します

var isValid = Regex.IsMatch("from=20100101&to=20121231",@"^from=[0-9]{8}&to=[0-9]{8}$");

\特殊文字をエスケープするために使用されます。So は、正規表現言語での意味ではなく、そのリテラル値で扱われます。たとえば\.、ポイントに一致することを意味し、a.自体はワイルドカードであり、「\n を除く任意の 1 文字に一致する」ことを意味します。

これ(subexpression)はグループ化と呼ばれ、内側の部分式と一致するすべてのものをキャプチャし、0 から始まる序数を割り当てます。この一致は、この構文を使用して割り当てられた序数で参照できます\0
。引数は幅広く、多数のバリエーションがあります。MSDN
のこのリファレンスから始めることができます

ノート。グループ化、\& (アンパサンドは特別な文字ではありません) を削除し、一致する数字を 8 桁に拡張するパターンを修正しました (日付が 6 桁のみで構成されている場合は、最小 6 を意味する {6,8} を設定できます)。 、最大8桁)

于 2012-08-24T22:33:21.800 に答える
1

{6}で6桁の連続した数字を要求しました。しかし、あなたは本当に8、yyyymmddを探しています。

于 2012-08-24T22:34:04.947 に答える