java基础整理の正则
来源:互联网 发布:古诗软件哪个好 编辑:程序博客网 时间:2024/05/22 07:54
正则表达式:其实一种规则,有自己特殊的应用,其作用就是针对于字符串进行操作。
正则:就是用于操作字符串的规则,其中这些规则使用了一些字符表示。
下面是没有用正则的写法
public class Demo2{public static void main(String[] args) {//只能输入数字String str = "124354232";char[] arr = str.toCharArray();boolean flag = true;for(int i = 0 ; i< arr.length ; i++){if(!(arr[i]>=48&&arr[i]<=57)){flag = false;}}System.out.println(flag?"输入正确":"输出只能是数字");}}使用正则后
public class Demo2{public static void main(String[] args) {//只能输入数字String str = "12435423a2";boolean flag = str.matches("[0-9]+"); System.out.println(flag?"输入正确":"只能输入数字");}}
是不是很明显
正则的符号这里就不多说了,我简单介绍下正则的一些功能
1.比如我们要校验一个qq
没有正则之前,我们是用一堆的if-else判断:
public static void checkQQ(String qq){int len = qq.length();if(len>=5 && len <=15){if(!qq.startsWith("0")){try{long l = Long.parseLong(qq);System.out.println("qq:"+l);}catch (NumberFormatException e){System.out.println("出现非法字符");}}elseSystem.out.println("不可以0开头");}elseSystem.out.println("QQ号长度错误");}有了正则以后呢,就简单多了
首先,我们对QQ号分析:5~15位数字,0不能开头
public static void checkQQ2() { String qq = "12345"; String reg = "[1-9][0-9]{4,14}"; boolean b = qq.matches(reg); System.out.println("b="+b);等等……还有一些功能,这里就不多介绍了,最后来看下正则的符号
.
任何字符(与行结束符可能匹配也可能不匹配)
\d
数字:[0-9]
\D
非数字: [^0-9]
\s
空白字符:[ \t\n\x0B\f\r]
\S
非空白字符:[^\s]
\w
单词字符:[a-zA-Z_0-9]
\W
非单词字符:[^\w]
System.out.println("a".matches(".")); System.out.println("1".matches("\\d")); System.out.println("%".matches("\\D")); System.out.println("\r".matches("\\s")); System.out.println("^".matches("\\S")); System.out.println("a".matches("\\w"));
Greedy 数量词
X?
X,一次或一次也没有
X*
X,零次或多次
X+
X,一次或多次
X{n}
X,恰好n次
X{n,}
X,至少n次
X{n,m}
X,至少n次,但是不超过m次
System.out.println( "a".matches(".") );System.out.println( "a".matches("a") );System.out.println("a".matches("a?") );System.out.println( "aaa".matches("a*") );System.out.println( "".matches("a+") );System.out.println( "aaaaa".matches("a{5}") );System.out.println( "aaaaaaaaa".matches("a{5,8}") );System.out.println( "aaa".matches("a{5,}") );System.out.println( "aaaaab".matches("a{5,}") );
范围表示
[abc]
a、b 或 c(简单类)
[^abc]
任何字符,除了 a、b 或 c(否定)
[a-zA-Z]
a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]]
a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]]
d、e 或 f(交集)
[a-z&&[^bc]]
a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]]
a 到 z,而非 m 到 p:[a-lq-z](减去)
System.out.println( "a".matches("[a]") ); System.out.println( "aa".matches("[a]+") ); System.out.println( "abc".matches("[abc]{3,}") ); System.out.println( "abc".matches("[abc]+") ); System.out.println( "dshfshfu1".matches("[^abc]+") ); System.out.println( "abcdsaA".matches("[a-z]{5,}") ); System.out.println( "abcdsaA12".matches("[a-zA-Z]{5,}") ); System.out.println( "abcdsaA12".matches("[a-zA-Z0-9]{5,}") ); System.out.println( "abdxyz".matches("[a-c[x-z]]+")); System.out.println( "bcbcbc".matches("[a-z&&[b-c]]{5,}")); System.out.println( "tretrt".matches("[a-z&&[^b-c]]{5,}"));
^
行的开头
$
行的结尾
\b
单词边界
\B
非单词边界
\A
输入的开头
\G
上一个匹配的结尾
\Z
输入的结尾,仅用于最后的结束符(如果有的话)
\z
输入的结尾
- java基础整理の正则
- java基础整理二十五(正则表达式)
- java基础整理の多线程
- 正则表达式 java 整理
- java基础整理のstatic关键字
- java基础整理の构造方法
- java基础整理のIO流
- Java正则表达式课后整理
- java正则表达式相关内容整理
- Java正则表达式基础知识整理
- 正则表达式(Java版整理)
- java基础整理1
- java基础整理7
- JAVA基础整理
- java基础<基础知识整理>
- java基础整理1
- JAVA基础知识点整理
- java基础整理
- windows8.1安装rabbitMQ
- NET 2.0(C#)调用ffmpeg处理视频的方法
- hadoop-2.4.1 集群搭建
- 重庆治疗腿部静脉曲张费用是多少
- 在QML应用中使用JSONListModel来帮我们解析JSON数据
- java基础整理の正则
- 第十二周 项目四 点、圆的关系(2)
- tar 打包与解压命令。
- 设计模式---继承和组合
- linux系统关机、重启操作
- 重庆治疗腿部静脉曲张费用是多少
- Gdiplus::Bitmap::FromStream 加载资源失败
- TCP/IP协议簇学习笔记——以太网帧
- iReport安装之后无法打开解决办法