[英]Regex matching a very specific Pattern
I have been trying to create a regex that would accept any of the values (SPAM, FOO, BAR) separated by a | 我一直在尝试创建一个正则表达式,以接受由|分隔的任何值(SPAM,FOO,BAR)。 or NONE.
或无。 The regex I've been working on does the job, but a problem comes up when a value is entered before those values (See image below for more details).
我一直在使用的正则表达式可以完成这项工作,但是当在这些值之前输入一个值时就会出现问题(有关更多详细信息,请参见下图)。 Any suggestions?
有什么建议么? Thank you!
谢谢!
^NONE$|^(?!. NONE)(?:. (FOO|BAR|SPAM))* ^ NONE $ | ^(?!。 NONE)(?:。 (FOO | BAR | SPAM))*
This is what I am currently working with. 这就是我目前正在使用的。
Strings that should pass: 应该传递的字符串:
//Should Pass //应该通过
FOO|BAR|SPAM FOO | BAR |垃圾邮件
FOO OO
SPAM|BAR 垃圾邮件|
SPAM|FOO 垃圾邮件| FOO
SPAM|FOO|BAR 垃圾邮件| FOO | BAR
BAR|FOO 酒吧|脚
NONE 没有
//Should fail //应该失败
NONE|FOO NONE | FOO
FOO|SPAM|NONE FOO |垃圾邮件|无
FOO|NONE|BAR FOO|TEST FOO | None | BAR FOO | TEST
FOO_TEST FOO_TEST
FOO TEST 脚步测试
FOO|TEST|BAR FOO | TEST | BAR
FOO_TEST|BAR FOO_TEST | BAR
TEST|FOO 测试| FOO
TEST|FOO|BAR TEST | FOO | BAR
TEST FOO|BAR 测试FOO | BAR
TEST_FOO|BAR TEST_FOO | BAR
*TEST is being used as a word that is not in the group * TEST被用作不在组中的单词
这应该起作用: ^NONE$|^(FOO|BAR|SPAM)([|](FOO|BAR|SPAM))*$
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.