手机
当前位置:查字典教程网 >编程开发 >Java >在Java编程中使用正则表达式
在Java编程中使用正则表达式
摘要:在程序设计过程中,经常需要对输入的数据格式进行检查,这时就会用到正则表达式,匹配正则表达式则数据格式正确,否则格式错误。为了检查输入的数据是...

在程序设计过程中,经常需要对输入的数据格式进行检查,这时就会用到正则表达式,匹配正则表达式则数据格式正确,否则格式错误。为了检查输入的数据是否满足某种格式,可以使用String类的matches()方法进行判断,语法格式如下:

boolean matches(String regex)

regex:指定的正则表达式。

返回值:返回boolean类型。

该方法用于告知当前字符串是否匹配参数regex指定的正则表达式,返回值是boolean类型,如果当前字符串与正则表达式匹配,则该方法返回true,否则返回false。

正则表达式是由一些含有特殊意义的字符组成的字符串,这些含有特殊意义的字符称为元字符,下面列出了正则表达式的部分元字符,在正则表达式的写法中,要在下列元字符的前面添加“”符号进行转译,例如元字符“d”在正则表达式的写法中是“d”,但是对于“.”,转译后就不代表任意一个字符啦,而是表示一个具体的句点。

.:代表任意一个字符。

d:代表0~9的任何一个数字。

D:代表任何一个非数字字符。

s:代表空白字符。

S:代表非空白字符。

w:代表可用作标识符的字符,但不包括“$”。

W:代表不可用作标识符的字符。

p{Lower}:代表小写字母a~z。

p{Upper}:代表大写字母A~A。

p{ASCII}:ASCII字符。

p{Alpha}:字母字符。

p{Digit}:十进制数字,0~9。

p{Alnum}:数字或字母字符。

p{Punct}:标点符号。

p{Graph}:可见字符。

p{Print}:可打印字符。

p{Blank}:空白或制表符。

p{Cntrl}:控制字符。

在使用 正则表达式时,如果需要某一类型的元字符多次输出,逐个输入就相当麻烦,这时就可以使用正则表达式的限定字符来重复次数,下面列出了常用限定符及其含义。

?:0次或1次。

*:0次或多次。

+:0次或1次。

{n}:重复n次。

{n,}:至少重复n次。

{n,m}:重复n~m次。

在正则表达式中还可以用方括号把多个字符括起来,方括号中各种正则表达式代表不同的含义,下面列出了方括号中元字符及其含义。

[abc]:表示a、b或者c。

[^abc]:表示a、b和c之外的任何字符。

[a-zA-Z]:a~z或A~Z的任何字符。

[a-d[m-p]]:a~d或m~p的任何字符。

[a-z&&[def]]:d、e或者f。

[a-z&&[^bc]]:a~z之间不含b和c的所有字符。

[a-z&&[^m-p]]:a~z之间不含m~p的所有字符。

用法示例:

1、车牌号:

/** * * @description:验证车牌号 * @param carNum * 豫A106EK * @return 合法:true 不合法:false */ public static boolean validateCarNum(String carNum) { boolean result = false; String[] provence = new String[] { "京", "津", "冀", "晋", "辽", "吉", "黑", "沪", "苏", "浙", "皖", "闽", "赣", "鲁", "豫", "鄂", "湘", "粤", "桂", "琼", "渝", "川", "黔", "滇", "藏", "陕", "甘", "青", "宁", "新", "港", "澳", "蒙" }; String reg = "[u4e00-u9fa5]{1}[A-Z]{1}[A-Z_0-9]{5}"; boolean firstChar = false; if (carNum.length() > 0) { firstChar = Arrays.asList(provence).contains(carNum.substring(0, 1)); } try { Pattern p = Pattern.compile(reg); Matcher m = p.matcher(carNum); if (m.matches() && firstChar) { result = true; } else { result = false; } } catch (Exception e) { e.printStackTrace(); } return result; }

2、手机号码:

/** * * @description:验证手机号码 * @param mobileNum 15516985859 * @return 合法:true 不合法:false */ public static boolean isMobileNum(String mobileNum) { boolean result = false; try { Pattern p = Pattern.compile("^((13[0-9])|(15[^4,D])|(18[0,5-9]))d{8}$"); Matcher m = p.matcher(mobileNum); result = m.matches(); } catch (Exception e) { e.printStackTrace(); } return result; }

手机号+固定电话:010-1111111,15516985859,0377-1111111

//java检测是否为电话号码(手机、固定电话验证) String legalPhone = ""; String regExp ="^((13[0-9])|(15[^4,D])|(18[0,5-9]))d{8}|[0]{1}[0-9]{2,3}-[0-9]{7,8}$"; Pattern p = Pattern.compile(regExp); Matcher m = p.matcher(importPotentialBFOs[i].getLegalPhone()); if(m.find()){ //注意:m.find只能用一次,第二次调用后都为false legalPhone = importPotentialBFOs[i].getLegalPhone(); uploadTmp.setLegalTelephone(legalPhone); }else{ throw new BizException("联系电话格式错误!"); }

3.实数:

String[] arrs=new String[]{"a","1.123","-1.23","0","+111"}; String regex="-?d+."; Pattern p = Pattern.compile(regex); for (int i = 0; i < arrs.length; i++) { Matcher m = p.matcher(arrs[i]); System.out.println(arrs[i]+":"+m.matches()); }

打印:

a:false

1.123:true

-1.23:true

0:true

+111:false

【在Java编程中使用正则表达式】相关文章:

java多线程编程之使用runnable接口创建线程

在java中使用dom解析xml的示例分析

Java 正则表达式 解释说明

java使用命令行打包JAR

在Java编程中使用正则表达式的基本方法

java当中的定时器的4种使用方式

基于Java字符编码的使用详解

java正则表达式提取数字的方法实例

基于java内部类作用的深入分析

Java线程中断的本质深入理解

精品推荐
分类导航