JavaSE--正则表达式

正则表达式:用于指定字符串的规则
pattren类 是一个最终类 不能被继承

     .

        代表任意字符

     \d

        代表[0-9]

     \D

     除了数字0-9 之外的字符

     \s

        代表空白字符

     \w

        代表字母、数字和_


常用的数量词:

     *

     可有可无

     >= 0

     ?

     最多出现一次

     <= 1

     +

     至少出现一次

     >= 1

 

package cn.tedu.pattern;

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

public class PatternDemo01 {
	public static void main(String[] args) {
		// 匹配一个字符串 值是abc
		String str = "abc";

		// 指定正则表达式的规则
		Pattern p = Pattern.compile("abc");
		// 将需要匹配的字符串和正则表达式进行关联
		Matcher m = p.matcher(str);

		// 匹配 如果匹配成功,返回true 如果匹配失败,返回false
		System.out.println(m.matches());

		// 匹配一个字符串 要求:有三个字符
		// 第一个字符是 xyz中的一个
		// 第二个字符是 7856数字中的一个
		// 第三个字符是 iop中的一个
		String str1 = "x5py";
		// 定义正则表达式
		Pattern p1 = Pattern.compile("[xyz][7568][iop]");
		// 正则表达式和需要匹配的字符串进行关联
		Matcher m1 = p.matcher(str);
		// 进行匹配
		System.out.println(m.matches());

		// 简化版正则
		String str2 = "8";
		System.out.println(str.matches("[xyz][4578][opu]"));

		// 需求:匹配所有的小写字母
		System.out.println(str.matches("[a-z]"));
		// 需求:匹配所有的大写字母
		System.out.println(str.matches("[A-Z]"));
		// 需求:匹配一个字母
		System.out.println(str.matches("[a-zA-Z]"));
		// 需求:匹配一个数字
		System.out.println(str.matches("[0-9]"));
		// 小写字母h到n
		System.out.println(str.matches("[h-n]"));

		// 需求:匹配一个字符的字符串,要求是不能有 a b c
		String str = "8+a";
		System.out.println(str.matches("[^abc]"));

		// 需求:匹配三个字符的字符串,要求
		// 以数字开头,以字母结尾
		// . 通配符 代表的是所有的字符
		// Invalid escape sequence
		// (valid ones are \b \t \n \f \r \" \' \\ )
		// \d 是正则表达式的转义字符 java中没有对应的转义字符
		// \\d java首先将\\d转换为\d,正则表达式再将\d转换为 0-9
		System.out.println(str.matches("\\d.[a-zA-Z]"));

		// [i-x]
		System.out.println(str.matches("[h-x]&&[i-z]"));

		// 需求: 匹配 .

		String s = "0";

		System.out.println(s.matches("\\."));

		// 需求:匹配 \ --> \\\\
		String s1 = new Scanner(System.in).nextLine();

		System.out.println(s.matches("\\\\"));

	}
}


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值