[英]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.