需要检查c#中字符串的格式

时间:2012-08-08 18:13:35

标签: c# regex

我有一个字符串,需要采用以下格式:XX999900XX必须是字符,而不是小数,后跟6位数字。

所以我想通过以下方式使用正则表达式:

string sPattern = @"^\\[A-z]{2}\\d{6}$";
indexNumber = "ab9999.00";
if (Regex.IsMatch(indexNumber, sPattern)
{
     // do whatever
}

失败了。 有人能告诉我出了什么问题吗?

4 个答案:

答案 0 :(得分:7)

我不相信[A-z]是有效的角色类。使用\\时,您当然不需要@

试试这个:

@"^[a-zA-Z]{2}\d{6}$"

如果您需要格式为4个数字后跟.,则需要另外两个数字,请尝试以下操作:

@"^[a-zA-Z]{2}\d{4}\.\d{2}$"

(请注意,对于.NET,\d将匹配任何脚本中的数字,因此如果您只想匹配那些,可能需要将其替换为[0-9]

答案 1 :(得分:1)

你有太多的转义字符。尝试:

string sPattern = @"^[a-zA-Z]{2}\d{6}$";

答案 2 :(得分:1)

A-z无效(大小写混合),并且您没有6位连续数字。你有4,小数,然后是2。尝试

^[a-zA-Z]{2}\d{4}.\d{2}$

答案 3 :(得分:0)

它失败了,因为你测试的值是小数,而你的正则表达式没有。另外,你的正则表达式模式将查看整个字符串。那就是^表示从字符串的开头开始,$表示字符串的结尾。如果你只想要“以...开头”,那么在模式的最后放下$。