我希望创建一个正则表达式,它可以匹配xxx
或yyy
,或者任何由逗号分隔的组合。
所以这些都是有效的:
xxx
yyy
xxx,xxx
yyy,xxx
xxx,yyy,yyy,yyy
但这些都是无效的:
xx // must be exact xxx
yyyy // must be exact yyy
xxx, // trailing comma
xxxyyy // no delimiter
xxx,,yyy // should only have one comma between
,xxx,yyy // no prepending commas
2条答案
按热度按时间c7rzv4ha1#
这应该足够
^((?:xxx|yyy)(,(?:xxx|yyy))*)$
。https://regex101.com/r/gT8wK5/1327wa7juj8i2#
您可以像这样使用 negative lookahead:
See it on regex101。
与Eraklon's answer相比,这个正则表达式不会重复
(xxx|yyy)
部分两次,但它的性能稍差。