1

我想使用正则表达式来匹配我收到的字符串的前十二个字符。我正在接收字符串,我想验证要丢弃哪个字符串以及保留哪个字符串。一旦我验证了字符串,我就会根据字符串中的信息实例化一个对象。

在我的示例中,我想检查一个特定的字符 (A)、八个数字、一个冒号,然后是 B|C,后跟一个 D。此模式标识了我想要使用的字符串。但是以下模式不匹配,我怀疑这是由于冒号

if(Regex.IsMatch(my_string,"A[0-9]{8,}:(B|C)D"))

我希望它匹配,其中零是 0-9 的任意数字,并且 B 可以与 C 互换。我需要验证冒号是否存在,因为在某些情况下字符串可能格式错误。

应该通过正则表达式模式的字符示例;

A00000000:BD
4

1 回答 1

3

该正则表达式应该可以工作。几点建议:

  • {8,}匹配 8 个或更多字符。
  • 整个正则表达式还将匹配较长字符串(即"XYZA12345678:CDEFG")的子字符串。如果你不想要那个,锚定你的正则表达式。
  • (B|C)可以替换为[BC]

所以试试这个:

if (Regex.IsMatch(my_string,"^A[0-9]{8}:[BC]D"))
于 2013-02-11T16:55:39.317 回答