单词的长度可以是2或6-10,可以用空格或逗号分隔。这个词只包括字母表,不区分大小写。
以下是应该匹配的词语组:
RE,re,rereRE不相匹配的组:
RE,rere,rel
RE,RERE下面是我尝试过的模式
((([a-zA-Z]{2})|([a-zA-Z]{6,10}))(,|\s+)?)但是不幸的是,这个模式可以匹配这样的字符串:RE,RERE看起来像没有设置单词边界。
发布于 2019-08-22 17:48:45
您可以使用交替匹配chars a-z 2次或6- 10次。
然后重复这个模式0+,在前面加上逗号或空格[ ,]。
^(?:[A-Za-z]{6,10}|[A-Za-z]{2})(?:[, ](?:[A-Za-z]{6,10}|[A-Za-z]{2}))*$解释
^开始(?:[A-Za-z]{6,10}|[A-Za-z]{2})匹配字符a-z 6 -10或2次(?:非捕获群[, ](?:[A-Za-z]{6,10}|[A-Za-z]{2})匹配逗号或空格并重复以前的模式)*关闭非捕获组并重复0+时间$末端如果支持查找,您还可以断言左侧和右侧的非空白字符\S。
(?<!\S)(?:[A-Za-z]{6,10}|[A-Za-z]{2})(?:[ ,](?:[A-Za-z]{6,10}|[A-Za-z]{2}))*(?!\S)发布于 2019-08-22 17:29:38
([a-zA-Z]{2}(,|\s)|[a-zA-Z]{6,10}|(,|\s))发布于 2019-08-22 17:31:48
此正则表达式将与第一个案例相匹配,但其他两种情况都不匹配:
^((([a-zA-Z]{2})|([a-zA-Z]{6,10}))(,|[ ]+|$))+$
我在这里假设每一行应该是一个匹配。
这里它在行动中。
https://stackoverflow.com/questions/57614255
复制相似问题