正则表达式问题

[复制链接]
查看11 | 回复4 | 2010-7-12 01:27:23 | 显示全部楼层 |阅读模式
有一个20位的字符串,中间可能有一个“-”,但是位置不确定在哪里,但是位置不能在第一或者最后的位置上
一定要是20位,一楼的兄弟的正则超过20位也可以
"-"最多只能有一个,二楼的兄弟正则可以写多个“-”
三楼的兄弟,你写的正则也不行啊

回复

使用道具 举报

千问 | 2010-7-12 01:27:23 | 显示全部楼层
完全匹配,规则:20位字母或数字或_或-,首位以及末尾不能为-,中间出现-的次数不能大于1次的正则。^(?=.{20}$)(\w){1}((\w){18}|\-\w+|\w+\-|\w+\-\w+)(\w){1}$不限定20位的,完全匹配:规则:从一位开始到任意位字母或数字或_或-,首位以及末尾不能为-,大于三位时中间出现-的次数不能大于1次的正则。(^\w{1}(.?|\-\w+|\w+(?:.|\-|\-\w+))\w{1}$)|(^(?=.{1}$)(\w))这个问题稍稍有点难度,++++分,到regexpal.com验证,匹配条件 # Case insensitive (i)# ^$ match at
回复

使用道具 举报

千问 | 2010-7-12 01:27:23 | 显示全部楼层
(?=.{20})^[^-][a-zA-Z0-9]{1,18}]-{1}[a-zA-Z0-9_]{1,18}[^-]$献上如果正确,还请++分!
回复

使用道具 举报

千问 | 2010-7-12 01:27:23 | 显示全部楼层
public static void main(String[] args){ String str="23ew423423qqwe1-23-6"; String reg = "(?=.{20}$)^(\\w{1,18}-{1}\\w{1,18})$"; System.out.println(str.length()+"::"+str
回复

使用道具 举报

千问 | 2010-7-12 01:27:23 | 显示全部楼层
一定要20位:/^(?=.{20}$)[^\-][A-Za-z0-9]*[\-][A-Za-z0-9]*[^\-]$/
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行