我有一个正则表达式,用于验证R1 AND R2
或R1 AND R3 OR R2 AND R4
等字符串。
这是我的正则表达式:
^[R\d+ (\bAND\b|\bOR\b)]+ R\d+$
今天,我发现它也接受像" R1AND R2"或" R1 ANDR R2"。如何确保我的正则表达式必须检测R \ d,AND和OR之间的空格?
谢谢!
答案 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 R4
和R1 AND R3
,但不匹配R1AND R3