我試圖找出這條規則正則表達式:這條規則的正則表達式?
「必須包含至少3個和最多5個 數字字符相同的字符可以 重複最多5次而且,長度應!最少10個字符。「
你有沒有ideea?
我開始用這樣的:
^\d{3,5}$
但這並限制有分鐘。 3個小數一個接一個,我需要的是可能讓他們插入字母也(最少3和最多5次出現)。
您能幫忙嗎?
我試圖找出這條規則正則表達式:這條規則的正則表達式?
「必須包含至少3個和最多5個 數字字符相同的字符可以 重複最多5次而且,長度應!最少10個字符。「
你有沒有ideea?
我開始用這樣的:
^\d{3,5}$
但這並限制有分鐘。 3個小數一個接一個,我需要的是可能讓他們插入字母也(最少3和最多5次出現)。
您能幫忙嗎?
這是可能的正則表達式,但反向引用的需要會使它非常緩慢。
^(?=(?:\D*\d){3,5}\D*$)(?!.*(.)(?:.*\1){4}).{10,}
描述:
(?=(?:\D*\d){3,5}\D*$)
:確保有3至5個標記(?!.*(.)(?:.*\1){4})
:確保有在相同的字符.{10,}
不 5個拷貝:確保匹配的字符串的長度至少爲10.更簡單的方法是使用Dictionary<char, int>
並對字符進行計數。
所有這些條件(長度除外)都非常不適合正則表達式。不受歡迎的:它將採用指數大小的表達式。使用正常的編程方法來計算字母,數字和重複。 - 除非這是正則表達式500的家庭作業,否則使用正則表達式沒有任何意義。
謝謝,我認爲從乾淨的代碼角度來看,使用正則表達式更好,但我同意你所說的。 – 2011-05-25 09:07:04
@Cristian:不,一個複雜的正則表達式很髒。 – kennytm 2011-05-25 09:11:57
這功課嗎? – Vadiklk 2011-05-25 08:59:44
不,這是工作要求。 – 2011-05-25 09:01:04