正则表达式 - 包括冒号

时间:2013-02-11 16:48:08

标签: c# regex visual-studio-2008 .net-3.5

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

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

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

我想要匹配,其中零是任意数字0-9并且B可以与C互换。我需要验证冒号是否存在,因为有些情况下字符串可能格格不入。< / p>

应传递正则表达式模式的字符示例;

A00000000:BD

1 个答案:

答案 0 :(得分:3)

正则表达式应该有效。一些建议:

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

所以试试这个:

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