C#中的正则表达式无法正常用于数字检查

C#中的正则表达式无法正常用于数字检查,c#,asp.net,.net,regex,C#,Asp.net,.net,Regex,我尝试在C中使用正则表达式# ^(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[!@$%^*])(?=.[a-zA-z])。{6,20}$ 但是\d如果我将[0-9]改为它无法正常工作,则会出现错误 这应该检查字符串是否有大写、小写、符号和数字您应该使用[0-9]。也许这更正确\d将捕获非欧洲数字,如७(它是一个Devanagari数字) 原因是: 你可能写过: var rx = new Regex("\d"); 但是在这种情况下,\d是字符串的转义序列

我尝试在C中使用正则表达式#

^(?=.*\d)(?=.[a-z])(?=.[a-z])(?=.[!@$%^*])(?=.[a-zA-z])。{6,20}$

但是\d如果我将
[0-9]
改为它无法正常工作,则会出现错误


这应该检查字符串是否有大写、小写、符号和数字

您应该使用
[0-9]
。也许这更正确
\d
将捕获非欧洲数字,如
(它是一个Devanagari数字)

原因是:

你可能写过:

 var rx = new Regex("\d");
但是在这种情况下,
\d
是字符串的转义序列,而不是正则表达式


取消激活字符串的转义扩展。

您应该使用
[0-9]
。也许这更正确
\d
将捕获非欧洲数字,如
(它是一个Devanagari数字)

原因是:

你可能写过:

 var rx = new Regex("\d");
但是在这种情况下,
\d
是字符串的转义序列,而不是正则表达式

取消激活字符串的转义扩展