首页 > Java > 正文

JAVA中校验密码的正则表达式

2018-07-22 Java 287 ℃ 0 评论

正则表达式是一种描述字符串集合的方法,它是以字符串集中各字符串的共有特征为依据的。正则表达式可以用于探索、编辑或者操作文本和数据。它超出了java程序设计语言的标准语法,因此有必要去学习特定的语法来构建正则表达式。正则表达式的变化是复杂的,一旦你理解了他们是如何被构造的话,你就能解析或者构建任意的正则表达式了。

在JDK1.3以及之前的JDK版本中并没有包含正则表达式的类,如果要在JAVA中使用正则表达式则必须使用第三方提供的正则表达式库。而在JDK1.4开始提供了支持正则表达式API,他们位于java.util.regex包中,由于已经有了标准API,所以本书将会用java.util.regex进行正则表达式的相关操作。

java.util.regex包主要由三个类组成:Pattern、Matcher和PatternSyntaxException。Pattern对象表示一个已经编译的正则表达式,Pattern类没有提供公共的构造方法,要构建一个模式,首先必须调用公共的静态complie方法,它将返回一个Pattern对象,这个方法接受正则表达式作为第一个参数。Matcher是一个靠着输入的字符串来解析这个模式和完成匹配操作的对象,与Pattern相似,Matcher也没有定义公共的构造方法,需要通过调用Pattern对象的matcher方法来获得一个Matcher对象。PatternSyntaxException对象是一个未检查异常,指示了正则表达式中的一个错误语法。

1、常见的正则表达式中元字符的含义:


元字符
说明
       .匹配任何单个字符。例如正则表达式“b.g”能匹配如下字符串:“big”、“bug”、“b g”,但是不匹配“buug”。
      $匹配行结束符。例如正则表达式“EJB$能够匹配字符串“I like EJB”的末尾,但是不能匹配字符串“J2EE Without EJBs!”。 
      ^匹配一行的开始。例如正则表达式“^Spring”能够匹配字符串“Spring is a J2EE framework”的开始,但是不能匹配
I use Spring in my project”。
      *匹配0至多个在它之前的字符。例如正则表达式“zo*”能匹配z以及zoo”;正则表达式“.*”意味着能够匹配任意字符串。
      /转义符,用来将元字符当作普通的字符来进行匹配。例如正则表达式/$被用来匹配美元符号,而不是行尾;
正则表达式
/.用来匹配点字符,而不是任何字符的通配符。
      []匹配括号中的任何一个字符。例如正则表达式“b[aui]g”匹配bugbigbug,但是不匹配beg。可以在括号中使用连字符“-”来
指定字符的区间来简化表示,例如正则表达式
[0-9]可以匹配任何数字字符,这样正则表达式“a[]c”就可以匹配“a0c”、“a1c”、
a2c”等字符串;还可以制定多个区间,例如“[A-Za-z]”可以匹配任何大小写字母。还有一个相配合使用的元字符“^”,用在这
里并不像前边的那个“
^”一样表示匹配行开始,而是表示排除,要想匹配除了指定区间之外的字符,就可以在左边的括号
和第一个字符之间使用
^字符,例如“[^163A-Z]