正则表达式

来源:互联网 发布:淘宝进口食品货源 编辑:程序博客网 时间:2024/06/06 23:11

在输入用户名和密码的时候需要验证是否符合一定的规则,正则表达式就是用来验证一个字符或者字符串是否符合一定的规则。不仅是Java,包括JavaScript和数据库等许多语言中都会用到正则表达式, 本文讲解正则表达式的简单使用。

  • 方法一:
//1.String类中matches方法(匹配规则)String s = "a";System.out.printly("s 是否是字母:"+s.matches([a-zA-Z]));

代码运行结果:s 是否是字母:true。这就简单的对a是否是字母进行简单的验证。
可以结合api来学习正则表达式,prttern(正则表达式)在java.util.regex 包下。

字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)

预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

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

边界匹配器
^ 行的开头
$ 行的结尾

来个实例:用户名不少于6位,必须包含数字和英文字母。

String username = "123456abc";//不少于6位boolean flag = username.matches("^.{6,}$")&&//包含数字username.matches("^.*[0-9]+.*$")&&//包含字母username.matches("^.*[a-zA-Z]+.*$");System.out.println("有户名是否合法:" + flag);
  • 方式二:
    用正则表达式类库里的方法进行验证:
String s = "100";Pattern pat = Pattern.compile(^[0-9]+$);Matcher mat = pat.matcher(s3);System.out.printly(mat.find());

百度百科里面有好多应用实例:
这里写图片描述

原创粉丝点击