0

我目前正在使用 C# 进行学生项目,我想检查一个字符串是否仅包含以下字符:

人工智能 0-9 $ #

原始字符串:

string rawData ="$A008B20130503C103804D00000000E1022F0080G0128H022I022#";

我的代码如下:

string regEXstring = @"^[A-I0-9$#]+$";
Regex regex = new Regex(regEXstring);
if (regex.IsMatch(rawData))
   {
       dataOK = true;
   }
   else
       dataOK = false;

我究竟做错了什么?

4

1 回答 1

1

修复您的rawdata/rawData错字,代码工作正常。该dataOK变量将true与您的示例数据一起使用,并且false如果将其他字符添加到字符串中。

从您的示例数据来看,您可以改进验证,以便您还可以确定:

  • 字符串以 $ 开头
  • 字符串以 # 结尾
  • 字符串包含由单个字符后跟至少三个数字组成的实体

为此,请使用如下模式:

string regEXstring = @"^\$([A-I]\d{3,})+#$";
于 2013-05-03T08:56:45.817 回答