我花了數小時試圖解決這個問題。正則表達式 - 防止重複字符
這裏是我的正則表達式的字符串:
^(?=.{4})(?!.{32})[a-zA-Z0-9_]+((\.(-\.)*-?|-(\.-)*\.?) [a-zA-Z0-9_]+)*$
-
您可以測試它here
這裏是我試圖acomplish(用戶名驗證):
- 字符串長度範圍 - >確定
- 字母,數字,_ - 。允許( - 和。不允許在開始和/或用戶名結尾處) - >確定
- 需要防止重複字符(超過5個字符行) - >需要幫助!
我花了數小時試圖解決這個問題。正則表達式 - 防止重複字符
這裏是我的正則表達式的字符串:
^(?=.{4})(?!.{32})[a-zA-Z0-9_]+((\.(-\.)*-?|-(\.-)*\.?) [a-zA-Z0-9_]+)*$
-
您可以測試它here
這裏是我試圖acomplish(用戶名驗證):
此:
^(?=.{4})(?!.{32})(?!.*(.)\1{4})\w[\w.-]+\w$
使用另一個(負)先行採取第三個條件的照顧。這一個將確保沒有字符,其次是4次。
我還使用\w
來簡化你的角色類別,它代表[a-zA-Z0-9]
。另外,正如F.J指出的那樣,您可以將前兩個預覽合併爲一個:
^(?=.{4,31}$)(?!.*(.)\1{4})\w[\w.-]+\w$
+1,這比我的版本更清晰,因爲它是匹配的重複字符檢查,而不是它自己的預覽。 –
夥計,你搖滾!非常感謝;現在我想咬我自己......浪費時間很害羞地問:-( – virrion
沒問題:)。如果它解決了您的問題,請考慮接受答案(通過單擊綠色複選標記)以向其他人展示,未來誰可能會發現此問題,解決方案是什麼。 –
嘗試以下操作:
^(?=.{4,31}$)(?![-.])(?:(?!(.)\1{4})[-.\w])+(?<![-.])$
這是假設的,而不是允許你實際上意味着防止重複字符。
請給出您想要匹配的字符串示例,它們當前正在失敗。很難說出「允許內聯5個字符以上的重複字符」的含義。你是說你想匹配「aaaaa」而不是「aaaa」? – meagar
你需要*允許*重複字符或*防止*? – haynar