首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >连字符分隔字符串的正则表达式

连字符分隔字符串的正则表达式
EN

Stack Overflow用户
提问于 2011-04-21 11:54:43
回答 2查看 385关注 0票数 4

我创建了XX -XX格式的正则表达式,其中XX是字母数字。

正则表达式为^[a-z0-9A-Z]{2}-[a-z0-9A-Z]{2}-[a-z0-9A-Z]{2}-[a-z0-9A-Z]{2}$。但我真正想做的是匹配下面的模式。我的字符串应该每2个字符有一个连字符(-)。

代码语言:javascript
复制
exapmle 1 : XX-            OK
exapmle 2 : XX-X           OK 
exapmle 3 : XX-XX-         OK 
exapmle 4 : XX-XX-XX       OK
exapmle 5 : XX-XX-XX-X     OK
exapmle 6 : XX-XX-X        OK
exapmle 7 : XX-XX--        NOT OK
exapmle 8 : XX-XX-X-       NOT OK
EN

回答 2

Stack Overflow用户

发布于 2011-04-21 12:26:25

这将会起到作用。基本上,您需要任何数字(零或更多)的XX-,后跟0、1或2个X

代码语言:javascript
复制
^([0-9A-Za-z]{2}-)*[0-9A-Za-z]{0,2}$
票数 5
EN

Stack Overflow用户

发布于 2011-04-21 12:13:25

看起来这行得通:

代码语言:javascript
复制
/^([\w\d]{2}-)*([\w\d]|([\w\d]{2}-?)?)$/

在这里查看它的实际效果:http://jsfiddle.net/sadkinson/FaQe6/6/

解释:

代码语言:javascript
复制
/^([\w\d]{2}-)*  -- any number of XX-
([\w\d]          -- either a single X
|([\w\d]{2}-?)?  -- or two Xs and maybe a dash to end

更新:基于一位评论者非常精明的观察(+1),我修复了上面的问题:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5739335

复制
相关文章

相似问题

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