+ -
当前位置:首页 → 问答吧 → 正则表达式疑问:

正则表达式疑问:

时间:2011-09-04

来源:互联网

一管理系统中登录账号:
①学生:学号为16位数字:并以年份开头 如2011 1111 0400 0629 2011是年份 1111 是学院代码 ,此正则中只需限定
年份在1970-2200年即可
②管理员:以字母开头 admin123之类


也就是说账号中不能出现 123admin 或者年份不在1970-2200之间的帐号!

作者: w156445045   发布时间: 2011-09-04

所谓“regular”的意思是:有规律,1970-2200是具体的业务逻辑,不存在规律,因此,不适合用正则来做。

作者: goldenfish1919   发布时间: 2011-09-04

1: (?:19[789][0-9]|2(?:[01][0-9][0-9]|200))[0-9]{12}
2: [a-zA-Z].*

PS:“2”以字母开头,那后面没要求的?用“,”“?”都可以?我想显然不行!正则表达式的问题最忌就是这种需求不明确的东西!

如果问正则表达式的话,请在提问时达到下面最为基本的要求:

1,正则表达式是一种模式匹配,是根据字符串的规律来操作的,因此需要详细说明具体要做些什么;
2,对于查找的问题,详细说明寻找字符串的特征是什么,这些字符串的边界是什么,或者说有些什么规律;
3,对于替换的问题,详细说明原串是什么,替换后是什么,有些什么规律;
4,对于验证的问题,详细说明验证的格式是什么;
5,举两三个覆盖范围尽可能广的示例。需要注意的是,所回复的正则表达式仅仅能满足所提供的示例!

作者: bao110908   发布时间: 2011-09-04

引用 2 楼 bao110908 的回复:
1: (?:19[789][0-9]|2(?:[01][0-9][0-9]|200))[0-9]{12}
2: [a-zA-Z].*

PS:“2”以字母开头,那后面没要求的?用“,”“?”都可以?我想显然不行!正则表达式的问题最忌就是这种需求不明确的东西!

如果问正则表达式的话,请在提问时达到下面最为基本的要求:

1,正则表达式是一种模式匹配,是根据字符串的规律来操作的,因此需……

 +1

作者: huangchenliang   发布时间: 2011-09-04

这个需要用到占位符

作者: jfxhsht   发布时间: 2011-09-04