您的位置:首页 > 职场人生

黑马程序员——正则表达式的入门和小案例

2015-11-21 23:54 519 查看

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

正则表达式

大家都知道,我们在java程序的学习和开发中,会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。

一、.定义:

正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的一个或多个字符串。

二、用途:

常见数据处理操作:

匹配 ----- 验证邮箱 手机号 QQ号;

替换 ----- 将私人信息隐藏;

分割 ----- name=XXX&sex=XXX&age=XXX;

查找 ----- 网页中的超链接,邮箱;

操作实现:

1、编写代码,使用代码实现:

A、代码编写量大 B、代码通用性差

2、正则表达式:

优点:通用性强;

缺陷:效率低;

三、方法概略

匹配

Pattern ----- public static boolean matches(String regex,CharSequence input);//编译给定正则表达式并尝试将给定输入与其匹配。

Matcher ----- public boolean matches();//尝试将整个区域与模式匹配。

替换

Matcher ----- public String replaceAll(String replacement);//替换模式与给定替换字符串相匹配的输入序列的每个子序列

分割

Pattern ----- public String[] split(CharSequence input);//围绕此模式的匹配拆分给定输入序列。

查找:字符串没有封装

Matcher ----- public boolean find();//尝试查找与该模式匹配的输入序列的下一个子序列。

Matcher ----- public String group();//返回由以前匹配操作所匹配的输入子序列。

Ps: JDK提供的正则表达式的使用(以匹配为例):

特点:比较繁琐

建议:使用String提供的封装实现

简化使用步骤,String的源码实现,仍然是JDK的Pattern

四、java中处理正则表达式的类

java.lang.String

java.util.regex.Pattern:模式类:字符串要被匹配的这么一个模式,该模式本身已经被编译过,使用的话效率要高很多。

java.util.regex.Matcher:匹配类:这个模式匹配某个字符串所产生的结果,这个结果可能会有很多个。

五、例子:

学习正则表达式的最好方法是从例子开始,理解例子之后再自己对例子进行修改,实验。下面给出了简单的例子,并对它们作了详细的说明。

package net.itcast.a.re;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

/**

* 正则表达式的使用:

* 验证QQ号为例:

*

* 使用方式1:

* 1、编写正则表达式

* 2、将正则表达式构建成java对象

* 3、和一个数据构建生成匹配器

* 4、指向操作:

* 判断是不是合法

*

* 使用要素:

* 1、要验证的数据

* 2、匹配模式

* 3、调用Java封装好的API

*

*/

public class RE00 {

public static void main(String[] args) {

//1、编写正则表达式

String qqRE = "[1-9][0-9]{4,14}";

//2、调用API

Pattern p = Pattern.compile(qqRE); //编译正则表达式

Matcher m = p.matcher("a595306686"); //比较和匹配

//结果

boolean b = m.matches(); //调用方法,打印结果

System.out.println(b);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: