一、基本概念

在项目中我们经常性做的一件事是“匹配”字符串

比如:

1、我们要验证用户输入的手机号是否合法?

2、验证设置的密码是否符合规则?

3、或者替换指定字符串中的一些内容。

这么一看,似乎正则表达式就是在查找、处理字符串。

二、如何使用

1、首先,我们需要定义一个模板(Pattern),这个模板描述了需要匹配的字符串的规则,这就是正则表达式。

2、模板有了,我们需要将要匹配的内容和模板一起创建一个匹配器(Matcher)。

3、最后执行匹配获得返回的结果。

按照以上的步骤,我们写一个简单的示例:

importjava.util.regex.Matcher;importjava.util.regex.Pattern;/***@authorlay

* @date 2018/4/10.

* @time 17:19*/

public classRegexDemo {public static voidmain(String[] args) {//写一个正则模板

Pattern pattern = Pattern.compile("name");//获取一个匹配器

Matcher matcher = pattern.matcher("name");//执行操作

boolean isMatch =matcher.matches();//打印结果

System.out.println("isMatch=" +isMatch);

}

}

在这个示例中:

1、我们使用Pattern类提供的方法compile()编译出正则表达式"name",返回一个Pattern模板类;

2、通过pattern模板类的matcher()方法获取匹配器,传入待处理的内容"name";

3、匹配器调用方法matches()返回匹配结果。

4、最后打印结果为:isMatch=true

三、学习内容

由以上的示例,我们可以了解到,对于Java的正则表达式我们需要学得的内容有:

1、正则表达式如何写;

2、Pattern类的使用;

3、Matcher类的使用;

四、正则表达式如何写;

在查看API文档的时候,介绍正则表达式语法的是这样的:\d 表示数字,\s表示空白字符

那问题在于,我们使用Pattern类的complie()方法来创建模板,而compile()方法需要传入的是一个字符串,例如:

Pattern pattern = Pattern.compile("name");

这样的话我们要怎么写正则表达式语法呢?如下:

Pattern pattern = Pattern.compile("\\d");

我们看到,这里使用了 "\\d" 而不是语法说的 "\d"。我们可以这样理解:在 Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。

例如:

\d -> \\d

\s -> \\s

\w -> \\w

正则表达式的语法可以参考:

五、Pattern类和Matcher类的使用

前面我们说了,pattern类是为了编译模板,matcher用于构建匹配器。其实就是示例化类,然后调用类的方法。比如:

1、匹配是否有某个字符串:boolean isMatched = matcher.matches();

2、替换字符串:String newStr = matcher.replaceAll("替换的内容");

六、总结

正则表达式即是为了匹配处理字符串而出现的,我们要做的即:

1、构造模板;2、构造匹配器;3、使用匹配器提供的方法处理字符串;

java正则表达式及api_Java API 之 正则表达式相关推荐

  1. java正则表达式及api_Java魔法堂:深入正则表达式API

    目录 一.前言 正则表达式作为文本处理的利器,早已成为各大语言的必要装备,但各语言对其的实现程度(功能语法支持程度)和API设计均有所差异,本篇将目光投向java原生类库中提供的正则表达式API--  ...

  2. java正则表达式及api_JAVA常用API:正则表达式regular expression

    一.正则表达式的概念 正则表达式,regular expression,在代码中通常简写成regex 正则表达式是一个字符串,使用每单个字符串来描述.定义匹配规则,匹配一系列符合某个语法规则的字符串. ...

  3. java生日正则表达式_Java编程基础15——正则表达式常用工具类

    1_正则表达式的概述和简单使用 A:正则表达式 是指一个用来描述或者匹配一系列符合某个语法规则的字符串的单个字符串.其实就是一种规则.有自己特殊的应用. 作用:比如注册邮箱,邮箱有用户名和密码,一般会 ...

  4. 【JAVA SE】第十一章 正则表达式、包装类和BigDecimal

    第十一章 正则表达式.包装类和BigDecimal 文章目录 第十一章 正则表达式.包装类和BigDecimal 一.正则表达式 二.包装类 1.概述 2.装箱与拆箱: 3.基本数据和包装类之间的转换 ...

  5. 常见API、正则表达式、Lanbda、算法

    1.常见API - Date Date类代表当前所在系统的日期时间信息. Date的构造器 Date d = new Date(); 名称 说明 public Date() 创建一个Date对象,代表 ...

  6. java 匹配url的正则表达式_java匹配url的正则表达式

    展开全部 给你个正则表达式的资料,自己慢慢研究,授你以渔: 一.正则表达式基础知识 我们先从简单的开始.假设你62616964757a686964616fe78988e69d8331333264623 ...

  7. java列出文件正则过滤_JAVA正则表达式过滤文件的实现方法

    java正则表达式过滤文件的实现方法 正则表达式过滤文件列表,听起来简单,如果用java实现,还真需要一番周折,本文简析2种方式 1.适用于路径确定,文件名时正则表达式的情况(jdk6的写法) Str ...

  8. java正则匹配的坑_java正则表达式入坑指南

    在日常开发工作中,无论你使用的语言是java.python.shell.golang还是C#, 正则表达式是编程语言中几乎绕不开的话题.有了它,可以帮你快速定位到符合条件的文本内容.今天小编带大家一起 ...

  9. java正则匹配双字节_Java 正则表达式详解(二)

    Java常用正则表达式匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用 ...

最新文章

  1. 解决stamp mismatch with graph file
  2. SpringMVC——Spring中的DispatcherServlet怎么工作?
  3. JQuery中serialize()、serializeArray()和param()的使用方法
  4. IT从业者几大职位薪酬对比
  5. mysql binary模式_MySQL数据库之MySQL的binary类型操作
  6. python类的属性打印_python 打印类的属性、方法
  7. 自动化通讯协定——现场总线
  8. STM32F103/429串口IAP+Ymodem升级
  9. iStack与CSS配置实例
  10. weblogic 自定义错误页面_使用 Nginx 容器为 Traefik 配置高性能通用错误页面
  11. promoter:启动子预测程序(PPPs)软件现状及分析
  12. 94% Asset Optimization
  13. 基于最小错误率的贝叶斯决策(matlab实验)
  14. win10引导安卓x86_手把手教你在电脑上安装安卓x86版+win10的双系统(只能在能用微软电脑系统的平板上安装)...
  15. 加号和减号在一起怎么读_幼儿园怎样认识加号,减号,等于号
  16. 计算机等级考试照片几寸,二寸照片的尺寸是多少?(小二寸和二寸是多少CM分别多大)...
  17. 闲鱼服务端架构演进历程
  18. 高职对口计算机试题ppt,高职单招中职计算机练习卷和答案.doc
  19. 2021 ICPC 昆明(22-4-17) C L E | 第46届ICPC亚洲区域赛(昆明)
  20. Android下拉刷新和上拉加载更多

热门文章

  1. 抽象类-(抽象类的样子)
  2. 037-PHP如何返回闭包函数实例
  3. 关于springMVC传参问题
  4. 这几天都是在公司慢待
  5. BFS HDOJ 1242 Rescue
  6. HDU 2242 双连通分量 考研路茫茫——空调教室
  7. 两千内给力的大屏手机(二)
  8. Ubuntu10.04No init found. Try passing init= bootarg解决方案
  9. 开机显示c:\windows\windows32\config\system文件损坏或丢失的解决方法(收集)
  10. mysql 5.7.21-linux_MySQL 5.7.21 Linux平台安装 Part 2