如何编写一个只允许字母,数字和特殊字符的正则表达式,而中间的表达式永远不会到底

需要一些正则表达式帮助。

到目前为止,我的代码工作允许有限数量的特殊字符。 但是,我不知道如何让它只允许它们在中间而且永远不会结束。

有人可以帮我解决这个问题吗?

这是我在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!"); } 

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

意思是 :

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

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