我有一个字符串需要采用以下格式:XX999900
.
XX
只能是字符,没有小数点,后跟 6 位数字。
所以我想通过以下方式使用正则表达式:
string sPattern = @"^\\[A-z]{2}\\d{6}$";
indexNumber = "ab9999.00";
if (Regex.IsMatch(indexNumber, sPattern)
{
// do whatever
}
它失败。有人可以告诉我有什么问题吗?
我不相信这[A-z]
是一个有效的字符类。\\
使用时您当然不需要@
。
试试这个:
@"^[a-zA-Z]{2}\d{6}$"
如果您需要格式有 4 个数字,.
然后是两个数字,请尝试以下操作:
@"^[a-zA-Z]{2}\d{4}\.\d{2}$"
(请注意,对于 .NET,\d
将匹配任何[0-9]
脚本中的数字,因此如果您只想匹配这些数字,则可能需要将其替换为)
你有太多的转义字符。尝试:
string sPattern = @"^[a-zA-Z]{2}\d{6}$";
A-z
无效(大小写混合),并且您没有 6 个连续数字。你有 4 个,一个小数,然后还有 2 个。尝试
^[a-zA-Z]{2}\d{4}.\d{2}$
它失败了,因为您在其中测试的值是小数,而您的正则表达式模式没有。另外,您的正则表达式模式将查看整个字符串。也就是说,^ 表示从字符串的开头开始,而 $ 表示字符串的结尾。如果您只想要“以”开头,则将 $ 放在模式的末尾。