正则表达式在日常开发中会经常的接触到,学会了正则可以更有效的对字符进行验证、拆分、替换、判断字符串是否合法等操作。。。

常用语法:

字符的取值范围

1.[abc] : 表示可能是a,可能是b,也可能是c。

2.[^abc]: 表示不是a,b,c中的任意一个

3.[a-zA-Z]: 表示是英文字母

4.[0-9]:表示是数字

简洁的字符表示

.:匹配任意的字符

\d:表示数字

\D:表示非数字

\s:表示由空字符组成,[ \t\n\r\x\f]

\S:表示由非空字符组成,[^\s]

\w:表示字母、数字、下划线,[a-zA-Z0-9_]

\W:表示不是由字母、数字、下划线组成

数量表达式

1.?: 表示出现0次或1次

2.+: 表示出现1次或多次

3.*: 表示出现0次、1次或多次

4.{n}:表示出现n次

5.{n,m}:表示出现n~m次

6.{n,}:表示出现n次或n次以上

逻辑表达式

1.XY: 表示X后面跟着Y,这里X和Y分别是正则表达式的一部分

2.X|Y:表示X或Y,比如"food|f"匹配的是foo(d或f),而"(food)|f"匹配的是food或f

3.(X):子表达式,将X看做是一个整体

java中提供了两个类来支持正则表达式的操作

分别是java.util.regex下的Pattern类和Matcher类

在实际的开发中,为了方便我们很少直接使用Pattern类或Matcher类,而是使用String类下的方法

验证:boolean matches(String regex)

拆分: String[] split(String regex)

替换: String replaceAll(String regex, String replacement)

例:

验证:

String str = "1234567abc";
String regex = "\\d+"; //判断是否为存数字
System.out.println(str.matches(regex));//false
String str = "1234567abc";
String regex = "\\w+"; //判断是否为字母、数字、下划线
System.out.println(str.matches(regex));//true

替换:

String str = "12Y34h56dAd7";
String regex = "[a-zA-Z]+";//匹配所有字母
System.out.println(str.replaceAll(regex,"-"));//12-34-56-7

拆分:

String str = "Tom:30|Jerry:20|Bob:25";
String regex = "\\|"; //匹配所有|
String[] arr = str.split(regex);
System.out.println(Arrays.toString(arr));//[Tom:30, Jerry:20, Bob:25]

java 正则表达式 复习的更多相关文章

  1. Java正则表达式教程及示例

    本文由 ImportNew - ImportNew读者 翻译自 journaldev.欢迎加入翻译小组.转载请见文末要求. [感谢 @CuGBabyBeaR  的热心翻译.如果其他朋友也有不错的原创或 ...

  2. java正则表达式

    java正则表达式 1.Java正则表达式的语法与示例:  http://baike.xsoftlab.net/view/207.html 2.Java 正则表达式:  http://www.runo ...

  3. Java正则表达式入门——转自RUNOOB.COM

    Java 正则表达式 正则表达式定义了字符串的模式. 正则表达式可以用来搜索.编辑或处理文本. 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别. Java正则表达式和Perl的是最为相似 ...

  4. Java 正则表达式详解

    Java 提供了功能强大的正则表达式API,在java.util.regex 包下.本教程介绍如何使用正则表达式API. 正则表达式 一个正则表达式是一个用于文本搜索的文本模式.换句话说,在文本中搜索 ...

  5. 【转】详解Java正则表达式语法

    (转自: http://www.jb51.net/article/76354.htm) 这篇文章主要介绍了Java正则表达式语法,包括常用正则表达式.匹配验证-验证Email是否正确以及字符串中查询字 ...

  6. java正则表达式【大全】

    [正则表达式]文本框输入内容控制整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$& ...

  7. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  8. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  9. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

随机推荐

  1. <meta>标签 的一些用法

    网上找到的一些资料:自己留着! 链接 :http://www.wzsky.net/html/Website/htmlcss/116165.html meta是html语言head区的一个辅助性标签.也 ...

  2. python中的事务

    1. 为什么要有事务 事务广泛的运用于订单系统.银行系统等多种场景 例如: A用户和B用户是银行的储户,现在A要给B转账500元,那么需要做以下几件事: 检查A的账户余额>500元: A 账户中 ...

  3. 2018-2019-2 网络对抗技术 20165232 Exp 9 Web安全基础

    2018-2019-2 网络对抗技术 20165232 Exp 9 Web安全基础 实验任务 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF) ...

  4. C++ TODO __fastcall

    C++ TODO __fastcall int __fastcall init_keys2(char *a1, char *a2) { char *v2; // r6 char *v3; // r5 ...

  5. tf工程化部署相关

    1.TensorFlow 模型保存/载入的两种方法 https://blog.csdn.net/thriving_fcl/article/details/71423039 [讲解清晰,2种方法都有缺陷 ...

  6. 下载的管理类MyDownloadManager

    import android.content.Intent; import android.net.Uri; import java.io.File; import java.io.FileOutpu ...

  7. nodejs之express中间件路由使用

    1.express 中间件使用 /* * 中间件:就是匹配路由之前和匹配路由之后做的一系列操作 */ var express = require('express'); var app = new e ...

  8. Windows环境下Mysql 5.7读写分离之使用mysql-proxy练习篇

    本文使用mysql-proxy软件,结合mysql读写分离,实现实战练习. 前期准备: 三台机器: 代理机,IP:192.168.3.33 mysql Master,IP:192.168.3.32 m ...

  9. New Date API介绍

    一.新的Date API介绍 LocalDateLocalTimeInstantDurationPeriod formatterparsejdk以前的java.util.Date存在的问题 1)比如n ...

  10. THUWC2019(?)历险记

    Day \(-?\) 搞文化. Day \(-4\) 突然发现自己复活了,然后就来机房了( Day \(-3\) 返 璞 归 真, 开 始 骆 氪 上午考试,被吊打了/kk Day \(-2\) 上午 ...