我的正則運算式如下:
^[a-z|A-Z]((?!.*--).*[[:alnum:]]|[-]){1,22}[a-z|A-Z|0-9]$
出于某種原因,如果設定為 24 ,給定字串的長度仍然被接受。原始捕獲組需要是:3-24 個字母數字字符之間的字串,必須以字母開頭,以字母或數字結尾,并且不能包含連續的連字符。
為什么正則運算式不檢查中間部分長度為 1-22 的量詞?
uj5u.com熱心網友回復:
主要模式應該只是^[a-z].{1,22}[a-z\d]$指定整個匹配必須是 3-24 個字符并且具有所需的開始和結束字符。您也可以使用不區分大小寫的修飾符進行a-z匹配A-Z。
然后添加一個否定的前瞻來禁止.*--。最終結果是:
^(?!.*--)[a-z].{1,22}[a-z\d]$
演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453901.html
標籤:正则表达式
上一篇:我怎樣才能解決這個問題?“在正常塊后檢測到堆損壞。CRT檢測到應用程式在堆緩沖區結束后寫入記憶體”
下一篇:從鏈接中提取關鍵字
