[英]C# Regular Expression for x number of groups of A-Z separated by hyphen
我正在尝试匹配以下模式。
至少3个“组”的字母数字字符,中间用连字符分隔。
例如:ABC1-AB-B5-ABC1
每个组的长度可以是任意数量的字符。
我尝试了以下方法:
^(\w*(-)){3,}?$
这在一定程度上给了我我想要的东西。
ABC1-AB-B5-0001失败,并且ABC1-AB-B5-0001-通过。
我不希望尾随连字符成为必需。
我不知道如何修改表达式。
您的^(\\w*(-)){3,}?$
模式甚至允许使用-----
这样的字符串,因为这里唯一需要的模式是连字符: \\w*
可以匹配0个字符。 因此, -
可能同时在前面和后面。
您可以使用
\A\w+(?:-\w+){2,}\z
详细资料 :
\\A
字符串开始 \\w+
-1个以上的字符字符(即字母,数字或_
符号) (?:-\\w+){2,}
-2个或更多序列:
-
单个连字符 \\w+
-1个或多个字字符 \\z
字符串的结尾。 参见regex演示 。
或者,如果您不想允许_
:
\A[^\W_]+(?:-[^\W_]+){2,}\z
或仅允许ASCII字母和数字:
\A[A-Za-z0-9]+(?:-[A-Za-z0-9]+){2,}\z
可能是这样的:
^\w+-\w+-\w+(-\w+)*$
^(\w+-){2,}(\w+)-?$
匹配2个以上由连字符分隔的组,然后匹配一个可能由连字符终止的组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.