C# 正则表达式-包括冒号
我想使用正则表达式来匹配我收到的字符串的前12个字符。我正在接收字符串,我想验证要丢弃的字符串和要保留的字符串。一旦我验证了字符串,我就会根据字符串中的信息实例化一个对象 在我的例子中,我想检查一个特定的字符(a)、八个数字、一个冒号,然后检查B | C和D。这个模式识别我想要使用的字符串。但是,以下模式不匹配,我怀疑这是由于冒号C# 正则表达式-包括冒号,c#,regex,visual-studio-2008,.net-3.5,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互换。我需要验证冒
if(Regex.IsMatch(my_string,"A[0-9]{8,}:(B|C)D"))
我想让它匹配,其中零是任何数字0-9,B可以与C互换。我需要验证冒号是否存在,因为有些情况下字符串可能格式不正确
应通过正则表达式模式的字符示例
A00000000:BD
这个正则表达式应该有效。一些建议:
匹配8个或更多字符{8,}
- 整个正则表达式还将匹配较长字符串的子字符串(即
)。如果你不想那样,锚定你的正则表达式“XYZA12345678:CDEFG”
可替换为(B | C)
[BC]
if (Regex.IsMatch(my_string,"^A[0-9]{8}:[BC]D"))
如果失败,您所说的
是什么意思?它到底是如何失败的?文本中有A | B,后跟C
,然后是B | C,后跟D
。是哪一个?不确定为什么在{8,}
中使用逗号,而不仅仅是{8}
,但您的正则表达式似乎与您给出的字符串匹配。将字符串传递给它失败了,其他研究表明,我必须使用\来比较冒号,但当您说“验证冒号是否存在”时,这只会转义字符串这是否意味着您也要匹配A00000000BD
,并可能在中添加:
?如果您愿意,您也可以将[0-9]更改为\dwanted@spots:否。\d
也匹配非ASCII数字。他似乎不希望这样。虽然这在理论上是可靠的,但我无法与这个案例相匹配,我正在检查的这部分在一个较长字符串的前面,我想在D处停止验证。我正在使用这个正则表达式检查我的字符串的一部分,然后再将其撕成碎片。这个检查是为了过滤掉不需要的字符串。@SimonJohnson:这正是这个正则表达式所做的,以及IsMatch()
方法的作用。一定还有别的问题。请编辑您的问题,并发布代码示例,让我们重现问题。