如何编程正则表达式在C#中包含空格

时间:2014-12-30 10:51:00

标签: c# regex

我有一个正则表达式,用于验证R1 AND R2R1 AND R3 OR R2 AND R4等字符串。

这是我的正则表达式:

^[R\d+ (\bAND\b|\bOR\b)]+ R\d+$

今天,我发现它也接受像" R1AND R2"或" R1 ANDR R2"。如何确保我的正则表达式必须检测R \ d,AND和OR之间的空格?

谢谢!

2 个答案:

答案 0 :(得分:3)

您正在使用字符类,这是错误的,请使用非捕获组:

^(?:R\d+\s(?:AND|OR)\s+)*R\d+$

答案 1 :(得分:1)

^R\d+(?:\s+(?:AND|OR)\s+R\d+)*$

试试这个。看看演示。

https://regex101.com/r/rU8yP6/4

你的工作不起作用是因为你在[]字符类中包含了evrything,它不是主要序列,只是一个可供选择的字符池。

这将匹配R1 AND R3 OR R2 AND R4R1 AND R3,但不匹配R1AND R3