JavaSE学习笔记21:Java正则表达式

Java从入门到架构师__JavaSE Java语言基础 阅读详情

Java正则表达式

 

1、正则表达式(特点)

正则表达式,顾名思义,就是符合一定规则的表达式。作用是专门用于操作字符串,虽说String类中已经有了很多操作字符串的方法,但是它们的功能单一,操作起来还麻烦,正则弥补了它们的补足。

 

下面我们通过一个小例子来感受一下区别:

需求:对QQ号码进行校验,要求:5~15位,0不能开头,只能是数字。

(1)常规的做法:

class CheckQQ

{

public static void main(String[] args)

{

String qq="3891289y49";

checkQQ(qq);

}

 

//常规的做法:

public static void checkQQ(String str)

{

String qq=str;

if(str.length()>=5&&str.length()<=15)

{

if(!str.startsWith("0"))

{

char[] chs=str.toCharArray();

boolean flag=true;

for(int x=0;x<chs.length;x++)

{

if(!(chs[x]>='0'&&chs[x]<='9'))

{

flag=false;

break;

}

}

if(flag==true)

System.out.println("qq:"+qq);

else

System.out.println("出现非法字符!");

}

else

{

System.out.println("不可以0开头!");

}

}

else

{

System.out.println("长度错误!");

}

}

}

我们可以优化一下:

/*

char[] chs=str.toCharArray();

boolean flag=true;

for(int x=0;x<chs.length;x++)

{

if(!(chs[x]>='0'&&chs[x]<='9'))

{

flag=false;

break;

}

}

if(flag==true)

System.out.println("qq:"+qq);

else

System.out.println("出现非法字符!");

*/

回忆之前我们学过的Integer.parseInt(String str);

如果str=“12a”,那么Integer.parseInt(String str)就会抛出异常:NumberFormatException·。

因此我们可以将这个方法用在此处。

 

将上面一大片代码改成:

try

{

long l=Long.parseLong(qq);

System.out.println("qq:"+qq);

}

catch(Exception e)

{

System.out.println("出现非法字符!");

}

 

但是,尽管我们这么优化,代码还是很复杂。因此我们只得另辟蹊径。

(2)用正则表达式来做:

通过查找API文档,我们发现String类中一个方法,之前我们没讲的:

boolean matches(String regex):告知此字符串是否匹配给定的正则表达式。用规则匹配整个字符串,只要有一处不符合规则,匹配结果就返回-1。

什么意思呢,就是说字符串是否符合给定的规则。这个规则通过一个字符串来定义,因此称之为正则表达式。正则表达式通常用regex来表示,它也是一个字符串。

import java.util.regex.*;

class CheckQQ

{

public static void main(String[] args)

{

String qq="3891289y49";

checkQQ(qq);

}

//用正则表达式:

public static void checkQQ(String str)

{

String qq=str;

String regex="[1-9][0-9]{4,14}";

 

boolean flag=qq.matches(regex);

if(flag)

System.out.println("qq:"+qq);

System.out.println("出现非法字符");

}

}

解释:

"[1-9][0-9]{4,14}"

[1-9]:表示字符串的第一位必须是1到9范围内的一个数字。

[0-9]:表示字符串的第二位必须是0到9范围内的一个数字。

{4,14}:表示想第二位这样的数据可以出现4,5,6,7,8,9,10,11,12,13,14次,包括第二位这一次出现在内。

"[1-9][0-9]{4,14}"从左往右看,还是从右往左看都可以。

 

这些符号都封装在java.util.regex包中的Pattern类中,因此要导包。

 

可以明显的看到,代码少了很多,这就是正则表达式的威力之处。可以看出,正则表达式就是用一些特定的符号来表示一些代码操作,这样就简化了书写。所以学习正则表达式就是在学习一些特殊符号的使用。

 

JavaSE】之正则表达式 Java基础正则表达式相关知识详细介绍~ 阅读详情

相关推荐

javase-15、正则表达式

正则表达式,其中普通字符包括大小写字母和数字。

justgo 1217

java正则表达式(很全)个人学习总结

Java正则表达式 正则表达式越到后面学习的好难啊! 0正则表达式中,字符分为 普通字符和元字符 1、普通字符: 大小写字母,数字 ,下划线,部分特殊符号, 非西文字符等 主要元字符:\ { } * ? + ( ) [ ] - | ^ $ Pattern类和Matcher类 没有构造方法,只能用普通方法创建对象。 Patternpattern=Pattern.compile(正则表达式); 、 创建pattern对象。然后 ...

qq_46506007的博客 2869

JavaSe系列二十七: Java正则表达式

1.一个正则表达式, 就使用某种模式去匹配字符串的一个公式. 很多人认为它们看上去比较古怪而且复杂所以不敢去使用. 不过, 经过练习后, 就觉得这些复杂的表达式写起来还是相当简单的, 而且, 一旦你弄懂它们, 你就能把数小时辛苦而且易错的文本处理工作缩短在几分钟(甚至几秒钟)内完成.2.这里特别强调, 正则表达式不是只有java才有, 实际上很多编程语言都支持正则表达式进行字符串操作!如果要想灵活地运用正则表达式,必须了解其中各种元字符的功能,元字符从功能上大致分为:1.限定符2.选择匹配符。

你好, 我在学java的博客 961

Java正则表达式学习

作者的其他平台:| CSDN:https://blog.csdn.net/qq_41153943| 掘金:https://juejin.cn/user/651387938290686| 知乎:https://www.zhihu.com/people/1024-paper-96| GitHub:https://github.com/JiangXia-1024?tab=repositories          本文大概12688字读完共需25分钟01

江夏、的博客 700

Java 正则表达式(深度长文)

Java正则表达式(深度长文)

senxu_的博客 7万+

Java--正则表达式入门指南

正则表达式Java中是强大且灵活的工具,用于字符串的匹配和处理,必须掌握PatternMatcher类的用法。希望这篇博客能为您的Java正则表达式学习之旅提供帮助!

Broken_x的博客 1857

Java——正则表达式详解

Java正则表达式的支持是从1.4版本开始的,此前的JRE版本不支持正则表达式Java语言中的正则表达式匹配功能主要是通过和类实现的。find():在一个字符串里寻找一个给定模式的匹配:用一个给定的模式尝试匹配一个字符串的开头matches():用一个给定的模式去尝试匹配一个完整的字符串:进行替换操作,对所有的匹配都进行替换:进行替换操作,只对第一个匹配进行替换compile():把一个正则表达式编译成一个模式flags():返回某给定模式的匹配标志matches()

吴声子夜歌的博客 2万+

javaSE学习笔记_目录

IO字节流 javaSE (二十九)IO.read()输出是int的原因、fileoutputstream的追加功能、用byte[]优化拷贝文件、Buffered缓冲区内存示意图 javaSE (三十)IO流异常处理、图片加密处理、输入文件路径并拷贝文件内容、在文件中键入内容 计算机基础知识 javaSE (一)数据类型转换、++/–运算符 javaSE (二)逻辑/位运算符、左移右移运算符、sw...

PizAn的博客 7031

JavaSE学习笔记】chapter06-常用类

学习资源:动力节点动力节点的个人空间-动力节点个人主页-哔哩哔哩视频 (bilibili.com)

Addery的学习日常 760

JavaSE-初识正则表达式

title: 初识正则表达式 date: 2019-02-23 22:09:32 tags: - JavaSE categories: - JavaSE 正则表达式概述及基本使用 指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。其实就是一种规则。有自己特殊的应用。 常见规则 规则字符在java.util.regex包下的Pattern类中。 A:字符 x 字符 x。举例...

ahojcn 的博客 293

JavaSe学习笔记

JavaSe学习笔记

MinQo的博客 2345

JavaSE-正则表达式

Java_SE正则表达式

认真学Java,认真学吉他,认真做人做事,开开心心活着! 859

JavaSE正则表达式学习笔记

介绍一个正则表达式,就是用特定模式匹配字符串的公式。虽然其语法初看可能显得古怪复杂,让人望而却步,但经过练习后会发现,编写这些表达式其实并不困难。而且,一旦掌握正则表达式,原本需要数小时且容易出错的文本处理工作,往往能在几分钟甚至几秒钟内完成。这里要特别强调,正则表达式并非 Java 独有,实际上很多编程语言都支持通过正则表达式进行字符串操作,例如Javascript、php。。。

qq_24052051的博客 1503

JavaSE学习笔记(20.Java正则表达式)

JavaSE学习笔记(16.Java正则表达式)

qq418674358的专栏 339

JavaSE学习】05-1常用API

JavaSE(B站黑马)学习笔记 05-1常用API

weixin_48074431的博客 1156

JavaSEjava中的正则表达式(从01学会正则表达式

java中的正则表达式,从认识正则表达式的常用类,底层实现原理,到元字符的使用,元字符的使用细节及注意事项,分组引用及反向引用实例,Matcher类常用的其它方法,String类中的正则使用,及常用的正则表达式(摘选), 带你从01学会正则表达式,一篇文章足以~...

T_158327的博客 4345

[javase学习笔记] 18. 正则表达式

一个正则表达式,就是用某种模式去匹配字符串的一个公式。很多人因为它们看上去比较古怪而且复杂所以不敢去使用,不过,经过练习后,就觉得这些复杂的表达式写起来是相当简单的,而且,一旦你弄懂它们,你就能把数小时辛苦而且易错的文本处理工作缩短在几分钟(甚至几秒钟)内完成正则表达式不是只有java才有,实际上很多编程语言都支持正则表达式进行字符串操作限定符选择匹配符分组组合和反向引用符特殊字符字符匹配符定位符。

2403_89707927的博客 872

视频教程-JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10-Java

JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10 ...

weixin_33869078的博客 309
上一篇: JavaSE学习笔记_20:Java网络编程
下一篇: 开启web前端之旅
java_程序媛
博客等级 码龄11年 26粉丝 24原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值