栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java正则表达式学习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java正则表达式学习

Java正则表达式学习

正则表达式是一个字符串,用于描述匹配一个字符串集合的模式。Java正则表达式使用String类的matches方法匹配字符串。

可以使用正则表达式来判断一个字符串是否符合所规定的书写规则。
下列是Java中常用的正则表达式:


如果字符串匹配正则表达式,String类的matches方法将会返回true,如:

System.out.println("Java is fun".matches("Java.*"));

输出的结果为true
所以,如要判断一个字符串是否符合"长度为5~9个数字"的规则
可以使用:

System.out.println("1234".matches("\d{5,9}"));

结果为false,而

System.out.println("123456".matches("\d{5,9}"));

的结果为true

通过正则表达式,可以判断一个字符串是否符合所规定的书写规则
如要判断一个字符串是否为前缀为6至13位字符的qq或163邮箱,可以使用:

System.out.println("ab123456@qq.com".matches("\w{6,13}+@+(qq|163)+\.+com"));

运行程序,发现"ab123456@qq.com"符合条件,而"a>123456@qq.com"、“12345@qq.com”、“ab123456/qq.com”、"ab123456@sohu.com"等均不符合

==============================================================================
除了匹配字符串的功能,正则表达式也可以让我们实现检索的功能,让我们从字符串中获取想要的部分
String类中的replaceAll、replaceFirst、split方法使我们可以替换和拆分字符串
如下列代码:

System.out.println("abc bc a ac".replaceAll("a\w", "e"));

输出的结果为"ec bc a e"
“w"代表了单词字符,通过"aw"检索字符串中存在字符"a"以及"a"之后连接任意单词字符的部分,并通过replaceAll方法将其替换为"e”
replaceFirst同理,不过替换的是第一次出现符合正则表达式的部分,如:

System.out.println("abc bc a ac".replaceFirst("a\w", "e"));

输出的结果为"ec bc a ac",replaceFirst方法只替换了字符串中首个符合正则表达式的部分,即字符"abc bc a ac"中的"ab"部分
而split方法则拥有两个重载,分为split(regex)与split(regex,limit)
查看String类,发现:

    public String[] split(String regex) {
        return split(regex, 0);
    }

得知split(regex)重载中关于limit的默认值为0,从split(regex,limit)的方法中发现当limit等于0时会匹配字符串中所有符合条件的部分,得知split(regex)重载方法会切割字符串中每一处符合条件的部分,而split(regex,limit)则会切割符合条件的前limit - 1部分
进行测试:

		String[] str = "abc bc a ac".split(" ");
		System.out.println(str.length);

发现输出结果为4,即字符串被切割成了4部分,依次输出为"abc",“bc”,“a”,“ac”
再通过:

		String[] str = "abc bc a ac".split("a",3);
		System.out.println(str.length);

发现输出结果为3,即字符串被切割了2次,依次输出为"",“bc bc “,” ac”

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/356018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号