Java学习笔记——正则表达式
更新:强烈推荐github学习正则表达式项目https://github.com/ziishaned/learn-regex
简介
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为 regex、regexp 或 RE ),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
Java 通过java.util.regex
包支持正则表达式的的功能。
知识点
- java.util.regex
这里只说明如何在 Java 中使用正则表达式,关于表达式的更多内容,请在实验楼搜索相关内容学习。
Java 使用正则表达式匹配非常简单,这里我们以匹配邮箱地址为例。在/home/project
目录下新建一个源代码文件RegexDemo.java
。
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexDemo {public static void main(String[] args) {
// Pattern类 正则表达式的编译表示。Pattern pattern = Pattern.compile("^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^.-]+@[a-zA-Z0-9.-]+$");String[] emails = {"shiyanlou@shiyanlou.com", "shiyanlou"};for (String email :emails) {
//Matcher 通过解释Pattern对字符序列执行匹配操作的引擎Matcher matcher = pattern.matcher(email);System.out.println(email + "匹配结果:" + matcher.matches());}}
}
编译运行:
$ javac RegexDemo.java
$ java RegexDemo
shiyanlou@shiyanlou.com匹配结果:true
shiyanlou匹配结果:false
练习题:正则表达式
在/home/project
目录下新建一个源代码文件RegexTest.java
。你需要完成以下要求:
- 从控制台输入一串字符串,使用正则表达式判断其是不是 11 位手机号码
- 如果是 11 位手机号码,输出 true,如果不是输出 false
示例:
输入:13408199578
输出:true
参考答案
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;public class RegexTest {public static void main(String[] args) {Pattern pattern = Pattern.compile("^1([34578])\\d{9}$");Scanner in = new Scanner(System.in);String phone = in.nextLine();Matcher matcher = pattern.matcher(phone);System.out.println(matcher.matches());}
}
看完了Java中正则表达式的视频,觉得还是非常不够,没有涉及到核心部分的知识,现在需要去学习一下linux以及正则表达式,然后来补全这篇blog。
2019/08/02
破案了 今天csdn就给我推荐了如何高效学习正则表达式??
https://blog.csdn.net/blogdevteam/article/details/98068851
https://github.com/ziishaned/learn-regex/blob/master/translations/README-cn.md
Java学习笔记——正则表达式相关推荐
- Java学习笔记——正则表达式(Pattern类、Matcher类和PatternSyntaxException)
目录 一.Pattern类 (一)Pattern 介绍 (二)Pattern 方法 二.Matcher类 (一)Matcher 类介绍 (二)Matcher 类方法 三.PatternSyntaxEx ...
- Java学习笔记-正则表达式的模式匹配
正则表达式(Regex)为被匹配的文本模式提供了简明扼要的规范. 关于正则表达式的语法,可以参考相关书籍和这个网址:http://edu.yesky.com/edupxpt/18/2143018.sh ...
- Java学习笔记--StringTokenizer的使用
2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- java学习笔记11--Annotation
java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...
- java学习笔记13--反射机制与动态代理
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...
- 准备写java学习笔记
准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267
- java学习笔记12--异常处理
java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...
- Java学习笔记(十)--控制台输入输出
输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...
- java学习笔记16--I/O流和文件
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input Output)流 IO流用来处理 ...
最新文章
- java pdf插件下载_免费java pdf控件
- Ubuntu中清理Network下Connect to Server的入口
- linux中终端字符界面打印QQ,教你如何在开发驱动时在图形界面下的终端打印字符!!...
- U3D游戏运行时资源是如何从AB中加载出来的
- Magicodes.IE编写多框架版本支持和执行单元测试
- 3.1HTML5样式的使用
- 东莞华勤通讯软件测试怎么样,【社招】华勤通讯NBD测试验证部急聘岗位-东莞...
- 股市常胜将军都懂得适时休息
- 机器人技术与人工智能有什么区别?
- node-7.2.1 already installed, it's just not linked
- 2021《考研数学接力题典1800》勘误表(附学霸高分笔记)
- 树莓派支持的最小linux,世界上最小的电脑:树莓派
- 元气骑士如何获得机器人成就皮肤_元气骑士:机器人成就皮肤该怎么获得?百场老机器人教你走位...
- 如何在scrapy框架里进行调试嘞
- Java Day24
- 解决WARNING: Ignoring invalid distribution -pencv-python (c:\users\lhw\anaconda3\lib\site-packages)
- 0101 混蛋罗心得[基本元素]
- qml 应用程序图标设置和打包——qml
- python将英文单词表示的数字转换成阿拉伯数字的代码
- 手把手教你“撸”一套企业级代理服务-前言