正则表达式 从入门到入坑 完整版(包括力扣例题)

正则表达式是一套标准,可以用于任何语言

一般用 ^正则表达式$ .表示单行匹配
但在java中是默认的,所以可以不加前后开头结尾符号。

匹配年份

在这里插入图片描述

public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		Scanner s=new Scanner(System.in);
		String a=s.next();
		String ex="19\\d\\d";
		if(a.matches(ex)) System.out.println(1);
		else System.out.println(0);
	}

非零qq号;

String ex="^[1-9]\\d{6,9}$";
		String a="01111111";
		String b="44444444";
		System.out.println(a.matches(ex));
		System.out.println(b.matches(ex));
		

匹配时间:

public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		String ex="^([0-1][0-9]|[2][0-4])\\:([0-5][0-9])$";
		String a="12:26";
		System.out.println(a.matches(ex));

	}

一、单个符号

1、英文句点.符号:匹配单个任意字符。
(因为点代表任意一个字符,所以如果想输出点,就要转义用\.)
eg:String ex=“.*ong,.*ong\.”;

表达式t.o 可以匹配:tno,t#o,teo等等。不可以匹配:tnno,to,Tno,t正o等。
2、中括号[]:只有方括号里面指定的字符才参与匹配,也只能匹配单个字符。
[…]只能匹配其中一个字符。
eg:[a-f0-9_]{6} 6个里面的字符(a-b和0-9和下划线)
表达式:t[abcd]n 只可以匹配:tan,tbn,tcn,tdn。不可以匹配:thn,tabn,tn等。
3、| 符号。相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配。
(aaa|bbb)只能匹配aaa和bbb其中一个字符串
表达式:t(a|b|c|dd)n 只可以匹配:tan,tbn,tcn,tddn。不可以匹配taan,tn,tabcn等。
4、表示匹配次数的符号
在这里插入图片描述

表达式:[0—9]{ 3 } \— [0-9]{ 2 } \— [0-9]{ 3 } 的匹配格式为:999—99—999
因为—符号在正则表达式中有特殊的含义,它表示一个范围,所以在前面加转义字符\。
5、符号:^ 表示否,如果用在方括号内,^表示不想匹配的字符。

表达式:[^x] 第一个字符不能是x
6、\S符号:非空字符
7、\s符号:空字符,只可以匹配一个空格、制表符、回车符、换页符,不可以匹配自己输入的多个空格。
8、\r符号:空格符,与\n、\tab相同
在这里插入图片描述

二、快捷符号(重点)

d与D,w与W等为对立关系
1、\d表示[0—9]
2、\D表示[^0—9]表示非数字
3、\w表示[0—9A—Z_a—z]字母,数字,下划线
4、\W表示[^0—9A—Z_a—z]
5、\s表示[\t\n\r\f]只能匹配一个空白字符,(不能是两个空格)
6、\S表示[^\t\n\r\f]
7,[+|-|*/]
8. 修饰符.:点可以匹配任意一个字符
9. 修饰符:星号可以匹配任意个字符
10.修饰符+:可以匹配至少一个字符
11,修饰符 ?:可以匹配0或一个字符
12。修饰符{n}:可以匹配n个字符
13。修饰符{n,m}:可以匹配n到m个字符
14,。修饰符{n,}:可以匹配至少n个字符

三,分组匹配

(…)进行分组,在分组后,就可以提取括号内的内容
在这里插入图片描述
提取时间

public static void main(String[] args) {
   
		// TODO Auto-generated method stub
		String a="12:26";
		String ex="^([0-1][0-9]|[2][0-4])\\:([0-5][0-9])$";
		Pattern pattern=Pattern.compile(ex);
		Matcher matcher=pattern.matcher(a);
		if(matcher.matches())
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值