gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:16:30 24 4
gpt4 key购买 nike

我正在使用 ASP.NET MVC。

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

另一件事:2个字符不能连续重复。

所以我可以有 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();
}
}

我发现这些表达式非常复杂,我很乐意为此提供一些帮助。

最佳答案

让我们试试这个:

@"^(([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

?! 组称为 negative lookahead assertion .

(LastCoder 的 表达式是等效的)

关于c# 正则表达式,只允许数字和字母不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14758175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com