繁体   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