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

常用语法:

字符的取值范围

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. Spring-data-redis 第一天

    1.Redis 这就不必哆嗦了,Redis 支持丰富的数据类型,String ,List,Sets ,Sorted Sets,Hashes,这就可以看出Java 操作Redis就要针对各种类型都有自己 ...

  2. input(移动端iOS)输入内容时调用软件盘后页面底部留白问题

    iOS/input输入框调用软键盘底部留白 只需input输入框失去焦点时,让页面自动下移即可恢复 <input placeholder="请输入用户名" v-model=& ...

  3. 重温IOC,DI的理解

    IOC和DI其实它们是同一个概念的不同角度描述 IOC强调的是程序控制对象(创建销毁),变换成了容器来控制对象(创建销毁) DI:即IoC容器帮对象找相应的依赖对象通过反射注入     从Spring ...

  4. 前端面试题总结——HTML(持续更新中)

    前端面试题总结--HTML(持续更新中) 1.什么是HTML? HTML:HyperText Markup Language超文本标记语言 2.XHTML和HTML有什么区别 HTML是一种基本的WE ...

  5. 【每日一包0009】group-array

    [github地址:https://github.com/ABCDdouyae...] group-array 对数组里面的多项按照指定的key进行整合 用法:group-array(arr, key ...

  6. is == 编码与解码

    is 和 ==  主要是数字和字符串的比较 1 区别: ==比较的是两边的值     is比较的是两边值的id    id获取的方法 id() 2 小数据池: -5~256 3 字符串中特殊字符有id ...

  7. C++入门经典-例2.3-在print函数中使用附加符号

    1:代码如下: // 2.3.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" int main() { ; /*定义长整型变量,为其赋值*/ ...

  8. 在electron中使用sqlite:sql.js简介

    在electron中使用sqlite:sql.js简介 在开发electron应用的时候如果想要使用sqlite3,步骤上除了npm安装以外还要rebuild,比较麻烦.如果你想找一个开箱即用的sql ...

  9. UI自动化-selenium-api封装pyse框架

    # coding=utf-8 import time from selenium import webdriver from selenium.webdriver.common.action_chai ...

  10. ControlTemplate in WPF —— TreeView

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" x ...