用正则表达式判断字符重复

需要ASP判断字符串必须由038ACDEHIMOTUVWXY组成,字符顺序无所谓,但不能重复,而且一个也不能少(用len(17)解决),我写的正则表达式(用not反向判断):
 
 answer=ucase(trim(request.Form("chepai")))'输入大写转换
 Set re = New RegExp'申明正则表达式变量
 re.Pattern = "[^038ACDEHIMOTUVWXY]|(/w+)(.*)/1"
 if (len(answer)=17) and (not re.test(answer)) then
       yes=true
 ELSE
       yes=false
 end if
 
正则表达式"[^038ACDEHIMOTUVWXY]|(/w+)(.*)/1"由两部分组成,中间用“|”逻辑或连接
前面的[^038ACDEHIMOTUVWXY]匹配除了这17个字符之外的任何字符,很简单。
 
关键是后面的(/w+)(.*)/1匹配任意重复的字母数字比较难想到。
 
/1表示匹配前面的/w所匹配的字符,.*表示中间可以隔0个或多个其他字符。
 
本来开始写的是这样:[^038ACDEHIMOTUVWXY]|.{2,}
 
结果那个.{2,}把“03”这样的也给匹配了,不符合要求,我只想匹配出“00”“33”或者“030”这样的,还是应该用(/w+)(.*)/1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值