我一直在尝试创建一个正则表达式,该正则表达式将接受由|分隔的任何值(SPAM,FOO,BAR)。或无。 我一直在使用的正则表达式可以完成这项工作,但是当在这些值之前输入一个值时就会出现问题(有关更多详细信息,请参见下图)。 有什么建议么? 谢谢!
^ NONE $ | ^(?!。 NONE)(?:。(FOO | BAR | SPAM))*
这是我目前正在使用的。
应该通过的字符串:
//应该通过
FOO | BAR |垃圾邮件
FOO
SPAM | BAR
SPAM | FOO
SPAM | FOO | BAR
BAR | FOO
无
//应该失败
NONE | FOO
FOO |垃圾邮件|无
FOO | NONE | BAR FOO | TEST
FOO_TEST
FOO测试
FOO | TEST | BAR
FOO_TEST | BAR
TEST | FOO
TEST | FOO | BAR
TEST FOO | BAR
TEST_FOO | BAR
* TEST被用作不在该组中的单词
答案 0 :(得分:2)
这应该有效:^NONE$|^(FOO|BAR|SPAM)([|](FOO|BAR|SPAM))*$