正則表達式

donghanfeng 2008-04-21 06:15:16
正則表達式功能如下:
1.大于6位
2.字母+数字
3.最少二个字母

^(?=(?:.*?a-zA-Z]){2,})[a-zA-Z0-9]{6,}$


使用了一個正向预查(?=pattern)
和一個非获取匹配(?:pattern)

但是 .*? 是何意思?請行家詳細解釋一下。。。。。
...全文
64 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
anqini 2008-04-21
  • 打赏
  • 举报
回复
.*? →用了勉强的量词

看这个帖子
http://www.java2000.net/doc/Java.Regex.Tutorial/Java.Regex.Tutorial.html#reg5_3
kevinchj 2008-04-21
  • 打赏
  • 举报
回复
.*? 任何字符(与行结束符可能匹配也可能不匹配)出现零次或多次
*?是Reluctant 数量词
/**********************/
Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

Reluctant 数量词
X?? X,一次或一次也没有
X*? X,零次或多次
X+? X,一次或多次
X{n}? X,恰好 n 次
X{n,}? X,至少 n 次
X{n,m}? X,至少 n 次,但是不超过 m 次

Possessive 数量词
X?+ X,一次或一次也没有
X*+ X,零次或多次
X++ X,一次或多次
X{n}+ X,恰好 n 次
X{n,}+ X,至少 n 次
X{n,m}+ X,至少 n 次,但是不超过 m 次
joejoe1991 2008-04-21
  • 打赏
  • 举报
回复
少了个 [ 吧?
是不是这样?

^(?=(?:.*?[a-zA-Z]){2,})[a-zA-Z0-9]{6,}$

.默认匹配除了行终止符以外的任何字符
*
表示重复0次或者多次,是贪婪匹配,也就是重复次数越多越好,
而后面的那个?
让这个贪婪匹配变成了懒惰匹配,就是重复次数由越多越好变成越少越好。

这个正则表达式是不是验证:
由大小写字母或者数字组成的6位的字符串,而且要求至少有两个字母挨在一起?
kevinchj 2008-04-21
  • 打赏
  • 举报
回复
. 任何字符(与行结束符可能匹配也可能不匹配)
吴冬冬 2008-04-21
  • 打赏
  • 举报
回复
.是除了\n的任何字符
kevinchj 2008-04-21
  • 打赏
  • 举报
回复
.是匹配任意字符
*是匹配0个或多个

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧