浅谈String的正则表达式

本文详细介绍了如何在Java中使用正则表达式进行字符串匹配,包括规则创建、对象指定和匹配操作。从匹配固定字符串到复杂模式,如大小写字母、数字、特殊字符组合,以及正则表达式的特殊语法如数量词、捕获组和替换等技巧均有涉及。
摘要由CSDN通过智能技术生成

浅谈String的正则表达式

	public static void main(String[] args) {
		//匹配字符串abc
		String str="abc";
		/*System.out.println(str.equals("abc"));
		System.out.println("abc".equals(str));*/
		//1.给定匹配规则
		Pattern p=Pattern.compile("abc");
		//2.指定匹配的对象
		Matcher m=p.matcher(str);
		//3.做匹配
		System.out.println(m.matches());
		
	}
	public static void main(String[] args) {
		
	     String s="3";
		//System.out.println(s.matches("abc"));
		
		//匹配小写英文字母
	     //[起始,结束]---范围其中的一个
		//System.out.println(s.matches("[a-z]"));
		//匹配数字
		//?---前面的字符最多出现一次  <=1
		System.out.println(s.matches("\\d?"));
	     
	     //匹配除x/y/z其他的字符
	     //[^]---取反
	     System.out.println(s.matches("[^xyz]"));
	}
	public static void main(String[] args) {
		//
		String s="\t";
		//.代表一个任意字符
		//System.out.println(s.matches(".."));
		//匹配.---\\.--字符串转正则--\.-正则转义--.
		//.---小数、文件
		//System.out.println(s.matches("\\."));
		//匹配\---\\\\--字符串转正则--\\--正则转义--\
		//\---文件的位置
		//System.out.println(s.matches("\\\\"));
		//
		System.out.println(s.matches("\\\t"));
	}
	public static void main(String[] args) {
		
		String s="aaaaavbeuirgvb";
		//匹配以小写英文字母开头,数字结尾,最少3个字符组成的字符串
		//System.out.println(s.startsWith("a")&&s.endsWith("b")&&s.length()>=3);
		//类似于+的这种符号控制字符出现个数---数量词
		//数量词修饰的是前面的字符
		//+---前面的字符最少出现一次 >=1
		//System.out.println(s.matches("[a-z].+\\d"));
		
		//匹配以a开头,以数字结尾最多3个字符
		//?---前面的字符最多出现一次  <=1
		//System.out.println(s.matches("a.?[0-9]"));
		
		//匹配以a开头,以b结尾的字符串
		//*---前面的字符可以不出现也可以出现多次
		//>=0
		//System.out.println(s.matches("a.*b"));
		
		
		//匹配5个a的字符串
		//{}---表示前面的字符具体出现多少次
		//System.out.println(s.matches("a{5}"));
		//匹配最少10个字符
		//{,}--左边是最小,右边是最大
		//System.out.println(s.matches(".{10,}"));
		//没有最小区间
		//System.out.println(s.matches(".{,10}"));
		//范围--身份证、密码
		System.out.println(s.matches(".{3,6}"));
		
	}
	public static void main(String[] args) {
	
		String s="高高兴兴";
		//匹配字符串出现ab
		//System.out.println(s.matches(".*ab.*"));
		//匹配两个ab
		//()---捕获组  \\n---拿到n编号的捕获组的内容
		//System.out.println(s.matches(".*(ab).*\\1.*"));
		//匹配叠字  啊啊啊啊啊啊
		//System.out.println(s.matches("(.)\\1+"));
		//ABAB---来吧来吧
		//System.out.println(s.matches("(..)\\1+"));
		//AABB---高高兴兴
		//System.out.println(s.matches("(.)\\1(.)\\2"));
		/*捕获组是(开始编号
		 * (A(B(CD))E)F(G)
		 * 1 A(B(CD))E
		 * 2 B(CD)
		 * 3 CD
		 * 4 G
		 * */
		
	}
	public static void main(String[] args) {
		
		String s="我我我我我爱爱爱爱爱爱学学学习";
		//替换
		//System.out.println(s.replace("a", "A"));
		//通过正则匹配内容进行多次替换
		//System.out.println(s.replaceAll("[a-z]", "+"));
		//对字符串的数字进行排序
		/*String str=s.replaceAll("\\D", "");//   \\d数字  \\D非数字
		char[] cs=str.toCharArray();
		Arrays.sort(cs);
		System.out.println(Arrays.toString(cs));*/
		//|---前后没有关系---[]---里面不能出现数量词
		//System.out.println(s.replaceAll("[-+]", "+"));   //     + >=1
		//不再一个表达式需要通过$才能拿到前面捕获组的内容
		//System.out.println(s.replaceAll("(tom)(.*)(jack)", "$3$2$1"));
		//变单字
		System.out.println(s.replaceAll("(.)\\1+", "$1"));
		
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值