您的位置:首页 > 编程语言 > Java开发

Java 正则表达式 常见的功能

2017-10-30 12:57 405 查看
package regex.demo;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo2 {
/*
* @param args
*/
public static void main(String[] args) {
/*
* 正则表达是对字符串的常见操作:
* 1 匹配
* 		其实使用的就是String类中的matches方法
* 2 切割
* 		其实使用的就是String类中的split方法
*
*
* 3 替换
* 		其实使用的就是String类中的replaceAll()方法
* 4 获取
* 		匹配器对象
*/

functionDemo_4();

}
/*
* 获取
* 1将正则规则进行对象的封装
* 	Pattern p=Pattern.compile("a*b");
* 2通过正则对象的matcher方法字符串相关联,获取要对字符串操作的匹配器对象Matcher
*  Matcher m=p.matcher("aaaab");
* 3通过Matcher匹配器对象的方法对字符串进行操作
* boolean b=m.matchers();
*
*/
private static void functionDemo_4() {
String str="da jia hao,ming tian bu fang jia";
String regex="\\b[a-z]{3}\\b";
//1 将正则封装成对象。
Pattern p=Pattern.compile(regex);
//2 通过正则对象获取匹配器对象
Matcher m=p.matcher(str);
//使用Matcher对象的方法对字符串进行操作
//既然要获取三个字母组成的单词
//查找 find();
System.out.println(str);
while(m.find()) {
System.out.println(m.group());
System.out.println(m.start()+":"+m.end());

}
}

private static void functionDemo_3() {
String str="zhangsantttxiaoqiangmmmmzhaoliu";
str=str.replaceAll("(.)\\1+","$1");//$符号 获取前一个正则的组
System.out.println(str);

String tel="15800001111";
tel=tel.replaceAll("(\\d{3})(\\d{4})(\\d{4})","$1****$3");
System.out.println(tel);
}
/*
* 切割
*
* 组:((A)(B)(C));从左括号数 几个组
*/
public static void functionDemo_2() {
/*String str="zhangsan.xiaoqiang.zhaoliu";
String []names=str.split("\\.");*/

String str="zhangsantttxiaoqiangmmmmzhaoliu";
String []names=str.split("(.)\\1+");
for(String name:names) {
System.out.println(name);
}

}

/*
* 演示匹配
*/
public static void functionDemo_1() {
//匹配手机号码是否正确
String tel="13800000001";

String reg="[1][3578]\\d{9}";
boolean b=tel.matches(reg);
System.out.println(tel+":"+b);
}

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