更新:强烈推荐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学习笔记——正则表达式相关推荐

  1. Java学习笔记——正则表达式(Pattern类、Matcher类和PatternSyntaxException)

    目录 一.Pattern类 (一)Pattern 介绍 (二)Pattern 方法 二.Matcher类 (一)Matcher 类介绍 (二)Matcher 类方法 三.PatternSyntaxEx ...

  2. Java学习笔记-正则表达式的模式匹配

    正则表达式(Regex)为被匹配的文本模式提供了简明扼要的规范. 关于正则表达式的语法,可以参考相关书籍和这个网址:http://edu.yesky.com/edupxpt/18/2143018.sh ...

  3. Java学习笔记--StringTokenizer的使用

    2019独角兽企业重金招聘Python工程师标准>>> Java Tips: 使用Pattern.split替代String.split String.split方法很常用,用于切割 ...

  4. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  5. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

  6. java学习笔记13--反射机制与动态代理

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note13.html,转载请注明源地址. Java的反射机制 在Java运行时环境中,对于任意 ...

  7. 准备写java学习笔记

    准备写java学习笔记 java int 转载于:https://blog.51cto.com/cryingcloud/1975267

  8. java学习笔记12--异常处理

    java学习笔记系列: java学习笔记11--集合总结 java学习笔记10--泛型总结 java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 j ...

  9. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  10. java学习笔记16--I/O流和文件

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note16.html,转载请注明源地址. IO(Input  Output)流 IO流用来处理 ...

最新文章

  1. java pdf插件下载_免费java pdf控件
  2. Ubuntu中清理Network下Connect to Server的入口
  3. linux中终端字符界面打印QQ,教你如何在开发驱动时在图形界面下的终端打印字符!!...
  4. U3D游戏运行时资源是如何从AB中加载出来的
  5. Magicodes.IE编写多框架版本支持和执行单元测试
  6. 3.1HTML5样式的使用
  7. 东莞华勤通讯软件测试怎么样,【社招】华勤通讯NBD测试验证部急聘岗位-东莞...
  8. 股市常胜将军都懂得适时休息
  9. 机器人技术与人工智能有什么区别?
  10. node-7.2.1 already installed, it's just not linked
  11. 2021《考研数学接力题典1800》勘误表(附学霸高分笔记)
  12. 树莓派支持的最小linux,世界上最小的电脑:树莓派
  13. 元气骑士如何获得机器人成就皮肤_元气骑士:机器人成就皮肤该怎么获得?百场老机器人教你走位...
  14. 如何在scrapy框架里进行调试嘞
  15. Java Day24
  16. 解决WARNING: Ignoring invalid distribution -pencv-python (c:\users\lhw\anaconda3\lib\site-packages)
  17. 0101 混蛋罗心得[基本元素]
  18. qml 应用程序图标设置和打包——qml
  19. python将英文单词表示的数字转换成阿拉伯数字的代码
  20. 手把手教你“撸”一套企业级代理服务-前言

热门文章

  1. angularJs模版注入的两种方式
  2. Prim POJ 2031 Building a Space Station
  3. oracle 存储过程 基础
  4. DP:最大公共子序列
  5. Linux下mysql数据库的自动备份与还原 远程备份和本地备份
  6. (六)mybatis-spring集成完整版
  7. 从HDFS看分布式文件系统的设计需求
  8. 04_使用域名访问后台管理系统(Nginx)
  9. Luogu4781 【模板】拉格朗日插值
  10. vue项目中打包的相关配置问题