java的正则表达式

一,正则表达式语法

可参见:Java 正则表达式:语法讲解和常用表达式汇总

二,正则表达式常用方法

1.Matcher.replaceAll()

public static void main(String[] args) {
		String str="This is Java , I like Java .\r\n" + 
				"Python python ;\r\n" + 
				"I like  Python ;31. Business tax avoidance planning of "
				+ "sales in the actual economic activities, ";
		Pattern p=Pattern.compile("[^a-z^A-Z]");
		Matcher m = p.matcher(str);
		str=m.replaceAll("").trim();//将非英文的值替换为空字符串
		System.out.println(str);
//str结果为所有单词组成的字符串:ThisisJavaIlikeJavaPythonpythonIlike
//PythonBusinesstaxavoidanceplanningof
//salesintheactualeconomicactivities
	    }

2.split()

public static void main(String[] args) {
		String str="This is Java , I like Java .\r\n" + 
				"Python python ;\r\n" + 
				"I like  Python ;31. Business tax avoidance planning of "
				+ "sales in the actual economic activities, ";
		Pattern p=Pattern.compile("\\W+");
		String[] a=p.split(str);//用非单词符来做分割,分割出来的就是一个个单词
		System.out.println(Arrays.toString(a));
		//直接用字符串split()结果是一样的,String[] a=str.split("\\W+");
//      a的值为:[This, is, Java, I, like, Java, Python, 
//		python, I, like, Python, 31, Business, tax, 
//		avoidance, planning, of, sales, in, the, actual, 
//		economic, activities]

3.matcher中的find(),matches(),lookingAt(),strat(),reset

1)matches():整个匹配,只有整个字符序列完全匹配成功,才返回True,否则返回False。但如果前部分匹配成功,将移动下次匹配的位置。举个例子如果字符串为"a123",正则表达式为"\w\d\d\d",则matches()方法才返回true,换言之,就是要匹配的字符串需要跟正则表达式一一对应,字母对应字母,数字对应数字,所以称之为完全匹配,错一位都不行。
2)find():部分匹配,从当前位置开始匹配,找到一个匹配的子串,将移动下次匹配的位置。“find()像迭代器那样向前遍历输入字符串。” --摘自《Java编程思想。看下面的例子中的find()方法,要匹配的字符串为"a123b",正则表达式为"\d\d\d",而最后输出结果为:123,所以称之为部分匹配,只要有,就返回true。
3)lookingAt():部分匹配,总是从第一个字符进行匹配,匹配成功了不再继续匹配,匹配失败了,也不继续匹配。lookingAt()方法介于matches()和find()方法之间。lookingAt()方法的部分匹配指从第一位开始匹配如果第一位没有匹配到,就不再匹配,直接返回false,如果第一位匹配到了,则匹配第二位,以此类推。例子:要匹配的字符串为"a123b",正则表达式为"\w\d\d",输出结果为"a12",很好理解,就是一位一位地匹配,匹配到了就匹配下一位。"\w\d\d"这个正则正好代表"字母数字数字",所以正好输出结果为a12。
4)reset:给当前的Matcher对象配上个新的目标,目标是就该方法的参数;如果不给参数,reset会把Matcher设到当前字符串的开始处。
5)strat返回匹配的子字符串的开始索引位置
6)group():可参见,正则表达式中Matcher的group()、start()、end()带参方法解析

public static void main(String[] args) {
		Pattern pattern = Pattern.compile("\\d{3,5}");
        String charSequence = "123-34345-234-00";
        Matcher matcher = pattern.matcher(charSequence);
        
 
        //虽然匹配失败,但由于charSequence里面的"123"和pattern是匹配的,所以下次的匹配从位置4开始
        System.out.println(matcher.matches());//false,matches是完全匹配,当charSequence为3-5个数字时才匹配
        //测试匹配位置
        System.out.println(matcher.find());//true
        System.out.println(matcher.group());//34345,经过matches后从4处开始匹配
        System.out.println(matcher.start());//4
 
        //使用reset方法重置匹配位置
        matcher.reset();
 
        //第一次find匹配以及匹配的目标和匹配的起始位置
        System.out.println(matcher.find());//true
        System.out.println(matcher.group()+" - "+matcher.start());//123 - 0
        //第二次find匹配以及匹配的目标和匹配的起始位置
        System.out.println(matcher.find());//true
        System.out.println(matcher.group()+" - "+matcher.start());//34345 - 4
 
        //第一次lookingAt匹配以及匹配的目标和匹配的起始位置
        System.out.println(matcher.lookingAt());//true
        System.out.println(matcher.group()+" - "+matcher.start());// 123 - 0
 
        //第二次lookingAt匹配以及匹配的目标和匹配的起始位置
        System.out.println(matcher.lookingAt());//true
        System.out.println(matcher.group()+" - "+matcher.start());//123 - 0
        
	    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园2.0是高校信息化建设的新阶段,它面对着外部环境变化和内生动力的双重影响。国家战略要求和信息技术的快速发展,如云计算、大数据、物联网等,为智慧校园建设提供了机遇,同时也带来了挑战。智慧校园2.0强调以服务至上的办学理念,推动了教育模式的创新,并对传统人才培养模式产生了重大影响。 智慧校园建设的解决之道是构建一个开放、共享的信息化生态系统,利用互联网思维,打造柔性灵活的基础设施和强大的基础服务能力。这种生态系统支持快速迭代的开发和持续运营交付能力,同时注重用户体验,推动服务创新和管理变革。智慧校园的核心思想是“大平台+微应用+开放生态”,通过解耦、重构和统一运维监控,实现服务复用和深度融合,促进业务的快速迭代和自我演化。 智慧校园的总体框架包括多端协同,即“端”,它强调以人为中心,全面感知和捕获行为数据。这涉及到智能感知设备、超级APP、校园融合门户等,实现一“码”或“脸”通行,提供线上线下服务端的无缝连接。此外,中台战略是智慧校园建设的关键,包括业务中台和数据中台,它们支持教育资源域、教学服务域等多个领域,实现业务的深度融合和数据的全面治理。 在技术层面,智慧校园的建设需要分期进行,逐步解耦应用,优先发展轻量级应用,并逐步覆盖更多业务场景。技术升级路径包括业务数据化、数据业务化、校园设施智联化等,利用IoT/5G等技术实现设备的泛在互联,并通过人工智能与物联网技术的结合,建设智联网。这将有助于实现线上线下一网通办,提升校园安全和学习生活体验,同时支持人才培养改革和后勤管理的精细化。 智慧校园的建设不仅仅是技术的升级,更是对教育模式和管理方式的全面革新。通过构建开放、共享的信息化生态系统,智慧校园能够更好地适应快速变化的教育需求,提供更加个性化和高效的服务,推动教育创新和人才培养的高质量发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值