簡體   English   中英

python regex:不允許特定字符重復

[英]python regex: don't allow a specific character to repeat

我有一個正則表達式

^[a-z][a-z0-9\-]{6,10}[a-z0-9]$

符合以下規則:

  • 長度8-12個字符
  • 第一個字符為小寫字母
  • 最后字符小寫字母或數字
  • 內部字符可以包含連字符

它在模塊中經常重復使用,並且總是與其他一些規則和正則表達式一起使用

在編寫一些單元測試時,我注意到它總是與另一條特定規則結合使用。

  • 連字符可能不會重復

我無法將規則整合到這一規則中來。 我已經嘗試了數十種方法,具有后顧之憂和前瞻性,但在隔離特定字符並保持長度要求方面沒有運氣。

沒有重復的連字符^[az](?:[a-z0-9]|-(?!-)){6,10}[a-z0-9]$

講解

 ^ [a-z] 
 (?:
      [a-z0-9]   # alnum
   |             # or
      - (?! - )  # hyphen if not followed by hyphen
 ){6,10}
 [a-z0-9] $

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM