package com.ldj.regEx;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @Title: 正则表达式用法列举
*
* @ClassName: RegExTest
* @description:TODO
* @author: lidajiu
* @date: 2018年8月22日 下午5:46:30
* @since JDK1.8
* @history 2018年8月22日 TODO 新建
*/
public class RegExTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// fecth();
// match();
// split();
// replace();
}
/**
* 正则匹配
*/
public static void match() {
String str = "当前时间2018-03-24你好啊";
String regex = "[1-9]\\d{3}(-|/)\\d{2}(-|/)\\d{2}"; // 日期正则 2018-08-22
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
System.out.println(matcher.find()); //true
}
/**
* 正则分割
*/
public static void split() {
String str = "avg, bb,geig, glsd,abc";
String reg = ", {0,}";//按照多个空格来进行切割
String[] arr = str.split(reg);
System.out.println(arr.length);
for(String s : arr)
{
System.out.println(s);
}
}
/**
* 正则替换
*/
public static void replace() {
String str = "世界和平2018"; //将数字替换成"万岁";
String reg = "\\d+";
str = str.replaceAll(reg, "万岁");
System.out.println(str); //世界和平万岁
}
/**
* 正则抓取
*/
public static void fecth() {
String str = "yin yu shi wo zui cai de yu yan";
System.out.println(str);
String reg = "\\b[a-z]{3}\\b";//匹配只有三个字母的单词
//将规则封装成对象。
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
while(m.find())
{
System.out.println(m.group()); //输出匹配的子序列
System.out.println(m.start()+"...."+m.end());
// start() 字符的开始下标(包含)
//end() 字符的结束下标(不包含)
}
}
}