正则表达式的功能示例,获取,替换,切割,匹配,边界匹配器,数量词

使用正则表达式和不使用正则表达式的小例子。

package com.regex;

import org.junit.Test;

/**
 * 在使用正则之前,我们先根据目前所学的知识来验证 QQ 号码的合法性。要求:
 * 1) 要求必须是 5-12 位
 * 2) 不能以 0 开头
 * 3) 必须都是数字
 */
public class RegexTest {
   
	// 使用正则表达式
	@Test
	public void test02() {
   
		String qq = "123478923";
		String reg = "[1-9]\\d{4,11}";
		boolean flag = qq.matches(reg);
		if (flag) System.out.println("QQ号合法!");
		else System.out.println("QQ号不合法!");
	}	
	
	// 使用之前的方式(不使用正则表达式)
	@Test
	public void test01() {
   
		String qq = "123478923";
		// 1) 要求必须是 5-12 位数字
		if (qq.length() >= 5 && qq.length() <= 12) {
   
			// 2) 不能以 0 开头
			if (qq.startsWith("0")) {
   
				System.out.println("QQ号不能以0开头");
			} else {
   
				// 3) 必须都是数字
				boolean flag = true;
				for(int i=0; i<qq.length(); i++) {
   
					char c = qq.charAt(i);
					if ('0' > c || c > '9') {
   
						System.out.println("QQ号必须全为数字!");
						flag = false;
						break;
					}
				}
				if (flag) System.out.println("QQ号合法!");
			}
		} else {
   
			System.out.println("QQ号必须是 5-12 位!");
		}
	}
}

正则表达式功能之:获取

package com.regex;

import java.util.Arrays;
import java.util.Comparator;
import java.util.TreeSet;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.junit.Test;

/**
 * 正则表达式功能之:获取
 * 方法:
 * 1、public static Pattern compile(String regex)
 * 			将给定的正则表达式编译到模式中。
 * 2、public Matcher matcher(CharSequence input)
 * 			创建匹配给定输入与此模式的匹配器。
 * 3、public boolean find()
 * 			尝试查找与该模式匹配的输入序列的下一个子序列。
 * 4、public String group()
 * 			返回由以前匹配操作所匹配的输入子序列。
 */
public class PatternTest04 {
   
	// 需求1:获取指定字符串中长度为 4 的所有单词。
	@Test
	public void test01() {
   
		String str = "ming tian jiu yao fang jia le o";
		// 1. 根据要求写正则表达式
		String regex = "\\b[a-zA-Z]{4}\\b";
		// 2. 把正则转换为Pattern对象
		Pattern compile = Pattern.compile(regex);
		// 3. 调用Pattern对象的matcher(String s)方法把需要匹配的字符串转换为Matcher对象
		Matcher matcher = compile.matcher(str);
		// 4. 调用Matcher对象的find()方法进行查找,如果找到返回true,否则返回false
		/*boolean flag = matcher.find();
		// 5. 调用Matcher对象的group()方法来获取
		if (flag) {
			String s = matcher.group();
			System.out.println(s);
		}*/
		// 如果获取多个需要使用循环
		while(matcher.find()) {
   
			System.out.println(matcher.group());
		}	
	}
	
	// 需求2:获取指定字符串中正确的内容。
	@Test
	public void test02() {
   
		String str = "正正正....则.则..表.表..表....表.达...达达..式式....";
		str = str.replaceAll("\\.+", "");
		System.out.println(str);
		str = str.replaceAll("(.)\\1+", "$1");
		System.out.println(str);
	}
	
	// 需求3:从指定字符串中获取 IP 地址并进行排序,然后输出。
	@Test
	public void test03() {
   
		String str = "192.168.1.250 102.49.23.11 10.25.43.21 2.2.2.2 6.6.6.6";
		
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值