c#正则表达式,只允许数字和字母不起作用

本文关键字:数字 不起作用 正则表达式 许数字 | 更新日期: 2023-09-27 17:58:17

我使用的是ASP.NET MVC。

我需要一个正则表达式,它只允许数字和字母,而不允许空格或",.;:~^"之类的东西。纯数字和字母。

还有一件事:两个字符不能连续重复。

所以我可以有123123,但不能有1123456。

我到达:

Regex ER1 = new Regex(@"(.)''1", RegexOptions.None);
Regex ER2 = new Regex(@"[A-Z0-9]", RegexOptions.IgnoreCase);

我不可能在一个表情中完成这一切,我仍然有一些角色通过。

这是我测试的全部代码:

class Program
{
    static void Main(string[] args)
    {
        string input = Console.ReadLine();
        Regex ER1 = new Regex(@"(.)''1", RegexOptions.None);
        Regex ER2 = new Regex(@"[A-Z0-9]", RegexOptions.IgnoreCase);
        if (!ER1.IsMatch(input) && ER2.IsMatch(input))
            Console.WriteLine( "Casou");
        else
            Console.WriteLine( "Não casou");
            Console.ReadLine();
    }
}

我发现这些表达非常复杂,如果能得到一些帮助,我会非常高兴。

c#正则表达式,只允许数字和字母不起作用

让我们试试这个:

@"^(([0-9A-Z])(?!'2))*$"

解释:

^               start of string
 (              group #1
   ([0-9A-Z])   a digit or a letter (group #2)
   (?!'2)      not followed by what is captured by second group ([0-9A-Z])
 )*             any number of these
$               end of string

 

?!组被称为负前瞻断言。

 

LastCoder的表达式等效)

这样的东西应该能在中工作

@"^(?:([A-Z0-9])(?!'1))*$"