浅讲java正则表达式

   我们在编写登录页面时,在注册信息页面时,都需要数据验证,但在我们没有学习正则表达式时,我们只知道通过if,else~~还有一些繁复的算法。那样写起来代码会比较杂,乱,而且代码量也不少,出错率也就随着增高了,还增加了计算机的运算,使程序运行变得缓慢。

   下面就来讲讲正则表达式,它可是使繁复的验证代码减少到只有一行。

   正则表达式是一种可以用模式匹配和替换的强有力的工具。

   正则表达式常用的符号

   .        表达任意一个字符

   /s      空格字符(空格键,tab,换行,换页,回车)

   /S     非空格字符[^/s]

   /d      一个数字(相当于[0-9])

   /D     一个非数字的字符(相当于[^0-9])

   /w     一个单词字符(相当于[a-zA-Z_0-9])

   /W    一个非单词字符(^[/w])

   ^      一行的开始

   $       一行的结尾

   /b     一个单词的边界

   /B    一个非单词的边界

   /G    前一个匹配的结束

   []     匹配放括号内的一个字符        eg:[abc]表示字符在a,b,c中的任意一个

大家注意没,字符大写一般都是非操作

 

  表示次数的符号

   *     重复零次或更多次       eg:    a*匹配零个或更多个a

   +     则少要重复一次          eg:    a+ 则少要一个a

   ?      匹配零个或一个          eg:    a? 只能有一或零个a

   {n}  重复n次                    eg:   a{4}匹配4个a

   {n,}则少重复n次             eg:     a{4,}则少匹配4个a

   {n,m}重复n到m次          eg:      a{4,10}匹配4到10个a

 

现在使用以上符号写简单验证(对于一些特殊符号要用转义字符)

验证email:

//w+([-+.]//w+)*@//w+([-.]//w+)*//.//w+([-.]//w+)*

验证身份证:

//d{15}|//d{18}

手机验证:

^[1][3,5]+//d{9}

 

注意:格式字符之间不要用空格空开

 

一个简单的验证

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class att {
   public static void main(String args[]){
      Pattern p = Pattern.compile("b*aa");    //Pattern是regex中的一个静态类,放入我们要验证的格式

      Matcher m = p.matcher("baaaa");       //验证的数据
      boolean b = m.matches();
      System.out.println(b);
   }

}

 

结果是输出false

 

 

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭