0

正規表現のヘルプが必要です。

これまでのところ、限られた数の特殊文字を許可するようにコードが機能しています。ただし、途中でのみ許可し、最後には許可しないようにする方法がわかりません。

誰かがその部分を理解するのを手伝ってくれますか?

これが私がc#で使用しているコードです:

            Regex uRLToVal= new Regex("^[A-Za-z0-9-_.+!*]*$");

            if (!uRLToVal.IsMatch(this.mainURL))
            {
                results.AddPropertyError("Your Entry can only contain letters, numbers, underscores, periods, plus, exclamation marks and hypens. Special characters should always be inside numbers or letters.  Example: v!v is OK BUT NOT !vv or vv!");
            }
4

1 に答える 1

3
new Regex(@"^[A-Za-z0-9]+([-_.+!*]+[A-Za-z0-9]+)*$");

つまり:

一致は少なくとも 1 つの数字または英字で始まる必要があります:[A-Z-z0-9]+

このシーケンスの後には、ゼロまたは多数の特殊文字-_.+!*続き、その後に少なくとも 1 つの数値または英字が続きます。この 2 番目の組み合わせは、0 回または複数回発生する可能性があります (例: asdf-e*r!asdf、またはa有効です) 。

于 2012-06-07T08:52:32.463 に答える