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]+)*$");

意思是 :

match 必须以至少一个数字或字母字符开头:[A-Z-z0-9]+

该序列后面可能跟零个或多个特殊字符-_.+!*,后面跟至少一个数字或字母字符。第二个组合可以发生零次或多次(例如 :asdf-e*r!asdfa有效)

于 2012-06-07T08:52:32.463 回答