Java API 之 正则表达式
一、基本概念
在项目中我们经常性做的一件事是“匹配”字符串
比如:
1、我们要验证用户输入的手机号是否合法?
2、验证设置的密码是否符合规则?
3、或者替换指定字符串中的一些内容。
这么一看,似乎正则表达式就是在查找、处理字符串。
二、如何使用
1、首先,我们需要定义一个模板(Pattern),这个模板描述了需要匹配的字符串的规则,这就是正则表达式。
2、模板有了,我们需要将要匹配的内容和模板一起创建一个匹配器(Matcher)。
3、最后执行匹配获得返回的结果。
按照以上的步骤,我们写一个简单的示例:
import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* @author lay
* @date 2018/4/10.
* @time 17:19
*/
public class RegexDemo {
public static void main(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
正则表达式的语法可以参考:
1、http://www.runoob.com/java/java-regular-expressions.html
2、http://tool.oschina.net/apidocs/apidoc?api=jdk-zh
五、Pattern类和Matcher类的使用
前面我们说了,pattern类是为了编译模板,matcher用于构建匹配器。其实就是示例化类,然后调用类的方法。比如:
1、匹配是否有某个字符串:boolean isMatched = matcher.matches();
2、替换字符串:String newStr = matcher.replaceAll("替换的内容");
六、总结
正则表达式即是为了匹配处理字符串而出现的,我们要做的即:
1、构造模板;2、构造匹配器;3、使用匹配器提供的方法处理字符串;
Java API 之 正则表达式的更多相关文章
- 详解Java API之正则表达式
正则表达式描述的是一种规则,符合这种限定规则的字符串我们认为它某种满足条件的,是我们所需的.在正则表达式中,主要有两种字符,一种描述的是普通的字符,另一种描述的是元字符.其中元字符是整个正则表达式的核 ...
- Java API 快速速查宝典
Java API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际 ...
- Elasticsearch java api 基本搜索部分详解
文档是结合几个博客整理出来的,内容大部分为转载内容.在使用过程中,对一些疑问点进行了整理与解析. Elasticsearch java api 基本搜索部分详解 ElasticSearch 常用的查询 ...
- Elasticsearch 2.3.3 JAVA api说明文档
原文地址:https://www.blog-china.cn/template\documentHtml\1484101683485.html 翻译作者:@青山常在人不老 加入翻译:cdcnsuper ...
- Java API 各个包的内容解释
java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类. java.awt 包含用于创建用户界面和绘制图形图像的所有类. java.awt. ...
- 【java 正则表达式】记录所有在java中使用正则表达式的情况
本篇记录在java中邂逅正则表达式的所有美丽瞬间.因为在java和js中正则表达式的语法并不一致. 1.匹配字符串中有出现[2.1开头或者&2.1或者&3.1等的] Pattern m ...
- JAX-RS介绍——Java API forRESTful WebServices,JAX-RS的目标是Web Services开发(这与HTML Web应用不同)而Spring MVC的目标则是Web应用开发
JAX-RS Java API forRESTful WebServices旨在定义一个统一的规范,使得 Java 程序员可以使用一套固定的接口来开发 REST 应用,避免了依赖于第三方框架.是一个J ...
- Elastic Stack 笔记(八)Elasticsearch5.6 Java API
博客地址:http://www.moonxy.com 一.前言 Elasticsearch 底层依赖于 Lucene 库,而 Lucene 库完全是 Java 编写的,前面的文章都是发送的 RESTf ...
- Elasticsearch Java API 很全的整理
Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...
随机推荐
- “全栈2019”Java第二十九章:数组详解(中篇)
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- php.ini中safe_mode开启之后对于PHP系统函数的影响
safe_mode是提供一个基本安全的共享环境. 在一个多用户共享的phpweb服务器上,当这台服务器开启了safe_mode模式,有以下函数将会受到影响. 首先,以下尝试访问文件系统的函数将会被限制 ...
- jquery源码解析:each,makeArray,merge,grep,map详解
jQuery的工具方法,其实就是静态方法,源码里面就是通过extend方法,把这些工具方法添加给jQuery构造函数的. jQuery.extend({ ...... each: function( ...
- Windows 操作系统如何使程序开机自启
Windows 操作系统如何开机自启 一.前言: 作为一只运维开发,很多时候需要将自己的小工具做开机自启.在 Linux 的世界里,如果你希望一个程序可以开机自启,那么可以在/etc/rc.d/rc. ...
- miniui表单验证守则总结
1,页面效果图 2,代码实现 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...
- 5104 I-country
5104 I-country 在 N*M 的矩阵中,每个格子有一个权值,要求寻找一个包含 K 个格子的凸连通块(连通块中间没有空缺,并且轮廓是凸的,如书中图片所示),使这个连通块中的格子的权值和最大. ...
- Codeforces Round #556 题解
Codeforces Round #556 题解 Div.2 A Stock Arbitraging 傻逼题 Div.2 B Tiling Challenge 傻逼题 Div.1 A Prefix S ...
- 【Leetcode】Reorder List
Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do thi ...
- 高阶篇:5)仿真研究Simulation studies
本章目的:了解仿真,初步学会怎么应用仿真. 1.仿真的定义 仿真------就是用模型(物理模型或数学模型)代替实际系统进行实验和研究. 把实际系统建立成物理模型或数学模型进行研究,然后把对模型实 ...
- 压缩jar包
1. 下载所要压缩 jar 包的源代码 2. 找到所有需要导入的类, 比如: import org.bouncycastle.util.io.pem.PemObject; import or ...