当前位置: 首页>编程语言>正文

java正则去除日期格式数据 java正则表达式年月日

正则表达式是很重要,这点就不需要我说什么了。正在学习正则表达式,贴出源代码,以便以后查询:

package cn.kpchen.one;

import org.junit.Test;

public class RegularTest1 {
	public static void main(String[] args) {

	}

	/**
	 * qq
	 */
	@Test
	public void test1() {
		String qq = "1234567";
		String reg_qq = "[1-9][0-9]{4,14}";
		String reg_qq2 = "[1-9]\d{4,14}";
		boolean bb = qq.matches(reg_qq);
		System.out.println(qq + "::" + bb);
	}

	@Test
	public void test2() {
		String str = "aooz";
		String reg = "ao*z";
		boolean b = str.matches(reg);
		System.out.println(str + "::" + b);
	}

	/**
	 * 手机号码
	 */
	@Test
	public void test4() {
		String str = "15395073029";
		String reg = "1[3458]\d{9}";
		boolean b = str.matches(reg);
		System.out.println(str + "::" + b);
	}

	/**
	 * 手机号码 隐藏中间4位
	 */
	@Test
	public void test4_1() {
		String str = "15395073029";
		String reg = str.replaceAll("(\d{3})\d{4}(\d{4})", "****");
		String string = str.substring(0, 3) + "****"
				+ str.substring(7, str.length());
		System.out.println(string);
		System.out.println(reg);
	}

	/**
	 * 切割
	 */
	@Test
	public void test5() {
		String str = "15  39 50 73 0  29";
		String[] arr = str.split(" +");// 1个或者多个空格
		for (String string : arr) {
			System.out.println(string);
		}
	}

	/**
	 * 切割
	 */
	@Test
	public void test6() {
		String str = "zhangsan.lisi.wangwu";
		String[] arr = str.split("\.");// .在正则表达式中代表任意字符
		for (String string : arr) {
			System.out.println(string);
		}
	}

	/**
	 * 切割
	 * 
	 * 捕获组可以通过从左到右计算其开括号来编号。例如,在表达式 ((A)(B(C))) 中,存在四个这样的组:
	 * 
	 * 1 ((A)(B(C))) 2 \A 3 (B(C)) 4 (C)
	 */
	@Test
	public void test7() {
		String str = "dwdsqqdfszzzijf";// 以叠词进行切割
		// ()表示组, 其中\表示引用组 ,+表示前面一位有一个或者多个
		String[] arr = str.split("(.)\1+");// 两位一致
		for (String string : arr) {
			System.out.println(string);
		}
	}

	/**
	 * 替换 将所有的叠词都替换成#
	 */
	@Test
	public void test8() {
		String str = "werqqtyuzzzio";
		str = str.replaceAll("(.)\1+", "#");
		System.out.println(str);

	}

	/**
	 * 替换 将所有的叠词都替换成一个
	 */
	@Test
	public void test9() {
		String str = "werqqtyuzzzio";
		// 后一个参数可以通过$数字引用前一个参数中的组
		str = str.replaceAll("(.)\1+", "");
		System.out.println(str);

	}
}

package cn.kpchen.two;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.junit.Test;

public class RegularTest2 {

	public static void main(String[] args) {

	}

	@Test
	public void test1() {
		Pattern p = Pattern.compile("a*b");
		Matcher m = p.matcher("aaaaab");
		boolean b = m.matches();
		System.out.println(b);
	}

	@Test
	public void test2() {
		String str = "da jia zhu yi le ,yao pai wei dian ying la ?";
		// \b表示单词的边界
		String reg = "\b[a-z]{3}\b";// 三个字母组成的单词都取出来
		// 正则规则被编译成Pattern对象
		Pattern pattern = Pattern.compile(reg);
		// 通过正则对象的方法matcher和字符串相关联获取匹配器对象

		Matcher matcher = pattern.matcher(str);
		while (matcher.find()) {
			System.out.println(matcher.start() + "---" + matcher.group()
					+ "---" + matcher.end());
		}

	}

	/**
	 * 找到所有数字并将其排序输出
	 * 
	 * @author: kpchen
	 * @createTime: 2014年11月8日 下午3:05:23
	 * @history: void
	 */
	@Test
	public void test3() {
		String s = "346qeije56fqw4r5qfy9qt5qoirad68763214";
		String reg = "\d";
		Pattern pattern = Pattern.compile(reg);
		Matcher matcher = pattern.matcher(s);
		List<Integer> lists = new ArrayList<Integer>();
		while (matcher.find()) {
			lists.add(Integer.parseInt(matcher.group()));
			System.out.println(matcher.group());
		}

		Integer[] array = new Integer[lists.size()];
		for (int i = 0; i < array.length; i++) {
			array[i] = lists.get(i);
		}

		Arrays.sort(array);
		for (Integer integer : array) {
			System.out.print(integer);
		}

	}

}

1、test1()运行结果:

true

2、test2()运行结果:

3---jia---6
 7---zhu---10
 18---yao---21
 22---pai---25
 26---wei---29

3、test3()运行结果:

12334445556666789
package cn.kpchen.three;

import java.util.Arrays;

import org.junit.Test;

public class PegexTest {

	/**
	 * 练习:我我我...我我..我要....学..学...学学..编编程
	 */
	@Test
	public void test1() {
		/**
		 * 1.先去掉所有. 替换
		 * 2.叠词变成一个 替换
		 */
		String str = "我我我...我我..我要....学..学...学学..编编程";
		System.out.println(str);
		str = str.replaceAll("\.+", "");
		System.out.println(str);

		str = str.replaceAll("(.)\1+", "");
		System.out.println(str);

	}

	/*
	 * 对ip地址字符串中的ip进行排序,按照ip的分类顺序
	 */
	@Test
	public void test2() {
		String ip = "192.108.90.34  10.10.10.10   5.5.5.5  30.107.100.5 ";
		/*
		 * 为了排序方便,最好将ip中的每一段都是三位,(字典顺序)
		 * 给每一段进行补零操作
		 */
		//每位都补两个零
		ip = ip.replaceAll("(\d+)", "00");
		System.out.println(ip);
		//每一段保留最后三位
		ip = ip.replaceAll("0*(\d{3})", "");
		String[] ips = ip.split(" +");

		Arrays.sort(ips);
		for (String i : ips) {
			//去掉每段前面的零
			System.out.println(i.replaceAll("0*(\d+)", ""));
		}

	}
}

1、test1()运行结果:

我我我...我我..我要....学..学...学学..编编程
 我我我我我我要学学学学编编程
 我要学编程

2.test2()运行结果:

00192.00108.0090.0034  0010.0010.0010.0010   005.005.005.005  0030.00107.00100.005
 5.5.5.5
 10.10.10.10
 30.107.100.5
 192.108.90.34
// 查找某个字符串中的特定字符
	@Test
	public void test1() {
		Pattern pattern = Pattern.compile("java");
		Matcher matcher = pattern.matcher("java Java JAVa I loveJavA ");
		while (matcher.find()) {
			System.out.println(matcher.group());
		}
	}

	@Test
	public void test2() {
		// 不区分大小写查找某个字符串中的特定字符
		Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher("java Java JAVa I loveJavA ");
		while (matcher.find()) {
			System.out.println(matcher.group());
		}
		// 将所有匹配的java子串都替换成JAVA
		System.out.println(matcher.replaceAll("JAVA"));
	}

	@Test
	public void test3() {
		// 不区分大小写
		Pattern pattern = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
		Matcher matcher = pattern.matcher("java Java JAVa I loveJavA dsfsf");
		StringBuffer buf = new StringBuffer();
		int i = 0;
		while (matcher.find()) {
			i++;
			// 单数改变为大写,双数改变为小写
			if (i % 2 == 0) {
				matcher.appendReplacement(buf, "java");
			} else {
				matcher.appendReplacement(buf, "JAVA");
			}

		}
		// 将尾巴加入到buf中
		matcher.appendTail(buf);
		System.out.println(buf);
	}

	@Test
	public void test4() {
		// 分组
		Pattern p = Pattern.compile("(\d{3,5})([a-z]{2})");
		String s = "123aa-3434bb-234cc-00";
		Matcher m = p.matcher(s);
		while (m.find()) {
			System.out.println(m.group());
			// System.out.println(m.group(1));
			// System.out.println(m.group(2));
		}
	}


https://www.xamrdz.com/lan/5st1963652.html

相关文章: