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

本文关键字:正则表达式 特殊字符 中间 结束 永远 数字 何编写 一个 许字母 | 更新日期: 2023-09-27 18:36:25

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

到目前为止,我的代码可以允许有限数量的特殊字符。 但是,我不知道如何让它只允许它们在中间,而不是最后。

有人可以帮我弄清楚那部分吗?

这是我在 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]+)*$");

这意味着:

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

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