python regex:不允许特定字符代表

2024-04-25 00:56:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个正则表达式

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

符合以下规则:

  • 长度8-12个字符
  • 第一个字符是小写字母
  • 最后一个字符小写字母或数字
  • 内部字符可以包含连字符

它在模块中经常被使用,总是与其他规则和正则表达式一起使用

在写一些单元测试时,我注意到它总是与另一个特定的规则结合使用。在

  • 连字符不能重复

我不能把那条规则整合到这条规则中去。我尝试过几十种lookbehind和lookaheads方法,但是在孤立特定字符和保持长度要求方面没有运气。在


Tags: 模块方法规则数字单元测试字符个字符小写字母
1条回答
网友
1楼 · 发布于 2024-04-25 00:56:00

无重复连字符^[a-z](?:[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] $

相关问题 更多 >