首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >验证的Regex模式,其中两个部分的长度相互依赖地变化

验证的Regex模式,其中两个部分的长度相互依赖地变化
EN

Stack Overflow用户
提问于 2013-11-11 22:50:10
回答 2查看 173关注 0票数 1

我正在尝试使用Regex模式来验证一个字符串,该字符串由2部分组成,这些部分的长度各不相同,但总体长度保持不变。

总长度=7开始段alpha字符只有1-3个字符结束部分4-6位数

组合1阿尔法+6位或2阿尔法+5位或3阿尔法+4位数。在第二个和第三个选项中,第一个字符允许为空格。

到目前为止,我得到的是^(?:(\sA-Z{2})(\d{4})x\sA\A-Z)$,可以简化吗?我怎么能有和可选的阿尔法字符在结尾?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-11 22:54:18

您需要向前看一看才能断言整个长度,而需要向前看负值以防止“空格数字”开始:

代码语言:javascript
复制
^(?=.{7}$)(?! \d) ?[a-zA-Z]{1,3}\d{4,6}$

请参见带有几个边缘情况的现场演示

票数 0
EN

Stack Overflow用户

发布于 2013-11-11 22:59:46

这也许能行

代码语言:javascript
复制
 # (?i)^(?=.{7}$)(?:[a-z]{1,3}|[ ][a-z]{2,3})\d{4,6}[a-z]?$

 (?i)                     # Case independent
 ^                        # BOL
 (?= .{7} $ )            # 7 chars total

 (?:
      [a-z]{1,3}          # 1 to 3 alpha
   |  
      [ ] [a-z]{2,3}      # or, space plus 2 to 3 alpha
 )

 \d{4,6}                  # 4 to 6 digits
 [a-z]?                   # optional alpha char
 $                        # EOL
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19917550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档