目录

一、什么是正则表达式

二、正则表达式元字符

三、正则表达还是元字符使用方法

四、正则表达式限定符

五、正则表达式示例


一、什么是正则表达式

正则表达式是一组公式,是描述一种字符串匹配的格式。

正则表达式通常被用于判断语句中,用来检查某一字符串是否满足某一格式。。我们可以调用String中的matches(String regex)方法,判断字符串是否匹配给定的正则表达式,返回布尔值。

示例:

str.matches("[a-z]") 表示字符串是否是小写字母a-z中的某一字母

二、正则表达式元字符

正则表达式是含有一些具有特殊意义字符的字符串,这些特殊字符称为正则表达式的元字符。例如,"\\d" 表示数0~9中的任何一个,"\\d" 就是元字符。

元字符 正则表达式中的写法 意义
. "." 代表任意一个字符
\\d "\\d" 代表0~9的任何一个数字
\D "\\D" 代表任何一个非数字字符
\s "\\s" 代表空白字符,如“\t”、“\n”
\S "\\S" 代表非空白字符
\w "\\w" 代表可用做标识符的字符,但不包括“$”
\W "\\W" 代表不可用于标识符的字符
\p{Lower} \p{Lower} 代表小写字母a~z
\p{Upper} \p{Upper} 代表大写字母A~Z
\p{ASCII} \p{ASCII} ASCII字符
\p{Alpha} \p{Alpha} 字母字符
\p{Digit} \p{Digit} 十进制数字,即0~9
\p{Alnum} \p{Alnum} 数字或字母字符
\p{Punct} \p{Punct} 标点符号:!"#$%'()+,-./:;<=>?@[\]^_`{|}~
\p{Graph} \p{Graph} 可见字符:[\p{Alnum\p{Punct}}]
\p{Print} \p{Print} 可打印字符:[\p{Graph}\X20]
\p{Blank} \p{Blank} 空格或制表符:[\t]
\p{Cntrl} \p{Cntrl} 控制字符:[\x00-\x1F\x7F]

三、正则表达还是元字符使用方法

在正则表达式中可以使用方括号括起来若干个字符来表示一个元字符,该元字符可代表方括号中的任何一个字符。

例如,reg=“[abc]4”,这样字符串“a4”、“b4”、·“c4”都是和正则表达式匹配的字符串。除此之外还有很多格式。如:

[^456]:代表4、5、6之外的任何字符。

[a-r]:代表a~r中的任何一个字母。

[a-zA-Z]:可表示任意一个英文字母。

[a-e[g-z]]:代表a~e,或g~z中的任何一个字母(并运算)。

[a-o&&[def]]:代表字母d、e、f(交运算)。

[a-d&&[^bc]]:代表字母a、d(差运算)。

(ab)|(13)|(50):代表”ab”、”13”、”50”中任意一值。

四、正则表达式限定符

在正则表达式中允许使用限定修饰符来限定元字符出现的次数。例如,"A*"代表A可在字符串中出现0次或多次。

限定修饰符 意义 示例
0次或1次 A?
* 0次或多次 A*
+ 一次或多次 A+
{n} 正好出现n次 A{2}
{n,} 至少出现n次 A{3,}
{n,m} 出现n次到m次 A{2,6}

正则表达式实例使用正则表达式来判断指定的变量是否是合法的E-mail地址。

设计思路:

[邮箱名]     @  [服务器名称]  [中间名] .  [后缀]
合法字符串@  合法字符串. 字符串(可无). 字符串(最大三个字符)

  \\w+         @    \\w+       \\.*\\w{2,3}*   \\.      \\w{2,3}

五、正则表达式示例

验证字符串是不是大陆手机号,大陆手机号是11位,前三位分别是130、131、132、133、134、134、135、136、137、138、139、150、151、152、153、155、156、157、158、159、180、185、186、187、188、189等

代码:

import java.util.Scanner;public class lianxi {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入手机号:");String regex = "(13[0-9]|15[012356789]|18[056789])\\d{8}";while (true) {String phone = sc.nextLine();if (phone.matches(regex)) {System.out.println("您输入的是手机号");} else {System.out.println("您输入的不是手机号");}}}
}

运行结果:

Java正则表达式【详解】相关推荐

  1. Java正则表达式(详解)

    (PS:这篇文章为转载,我不喜欢转载的但我觉得这篇文章实在是超赞了,就转了过来,这篇可以说是学习JAVA正则表达的必读篇.作者是个正真有功力的人,阅读愉快) 在Sun的Java JDK 1.40版本中 ...

  2. 【Java基础系列教程】第十五章 Java 正则表达式详解

    一.正则表达式概述 什么是正则表达式 正则表达式:用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用.正则表达式通常被用来检索.替换那些符 ...

  3. Java基础学习总结(35)——Java正则表达式详解

    在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包. 可粗略估计一下,除了偶尔用

  4. 【吐血整理】java正则表达式详解

    阿里 最重视项目经验 阿里一般情况下有五轮面试,其中大概有四轮都是基于项目的技术在问实现机制.改进技术方案.做的认为不足的地方,技术栈的实现原理,有没有其他替代方案,涉及中间件的原理等等. 重视技术原 ...

  5. [文摘]Java正则表达式详解

    为什么80%的码农都做不了架构师?>>>    参见:http://edu.yesky.com/edupxpt/18/2143018.shtml PS:此文讲解正则表达式还是很不错的 ...

  6. java中的正则表达式详解

    转自:http://gstarwd.iteye.com/category/91108?show_full=true 想必很多人都对正则表达式都头疼.今天,我以我的认识,加上网上一些文章,希望用常人都可 ...

  7. java判断颜色合法_判断颜色是否合法的正则表达式(详解)

    判断颜色是否合法的正则表达式(详解) "^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$"; 意思是:以#开头,后面是数字和a-f的字符(大写或小写),这个值是 ...

  8. Apache Thrift - java开发详解

    2019独角兽企业重金招聘Python工程师标准>>> Apache Thrift - java开发详解 博客分类: java 架构 中间件 1.添加依赖 jar <depen ...

  9. Java泛型详解-史上讲解最详细的,没有之一

    目录 1. 概述 2. 一个栗子 3. 特性 4. 泛型的使用 4.1 泛型类 4.2 泛型接口 4.3 泛型通配符 4.4 泛型方法 4.4.1 泛型方法的基本用法 4.4.2 类中的泛型方法 4. ...

  10. JavaScript正则表达式详解(一)正则表达式入门

    JavaScript正则表达式是很多JavaScript开发人员比较头疼的事情,也很多人不愿意学习,只是必要的时候上网查一下就可以啦~本文中详细的把JavaScript正则表达式的用法进行了列表,希望 ...

最新文章

  1. 【MySQL】缩略语PK NN UQ BIN UN ZF AI G、基本操作语句
  2. hdu 1298 字典树 + DFS (模拟T9文本输入)
  3. 委托的Invoke 和 BeginInvoke 与Control的Invoke和BeginInvoke(转-因为写得很好)
  4. python 主要内容,介绍一些有关python的重要内容
  5. fragment+viewpager+tablayou实现滑动切换页面
  6. setuptools find_packages
  7. mysql in 索引_关于MySQL种的in函数到底走不走索引、我和同事差点大打出手!
  8. 唐诗辑注 —— 逢雪宿芙蓉山主人、十五夜望月、小儿垂钓
  9. 松下plc编程线usb驱动
  10. 智鼎逻辑推理题及答案_PreTalent职场说|2020常见校招笔试题型解析
  11. 虚拟机vBox xp系统无法联网
  12. DATEDIF函数使用方法高级篇到期提醒等
  13. 背单词App开发日记6(终章总结)
  14. Java版本kafka-clients的介绍
  15. yocto(一)——yocto介绍
  16. 200115(最小生成树的Kruskal算法(贪心))
  17. 变现利器!一文带你学会应用内添加「贴片广告」
  18. jQuery mobile插件基础知识笔记
  19. 网络编程与分布式系统
  20. android 应用变量,应用变量(com.sollyu.xposed.hook.model) - 3.3.2 - 应用 - 酷安

热门文章

  1. c语言编程运动会分数统计系统报告,C语言课程设计报告运动会分数统计系统.pdf...
  2. 基于matlab和proe的曲面建模,两个基础曲面建模实例教你Proe曲面建模技巧和思路...
  3. windows10环境下curl 安装与配置
  4. 《Bible》各版本
  5. 浅谈手机接收性能的测试
  6. webrtc学习--websocket服务器(二) (web端播放h264)
  7. EPSON-LQ 300K II驱动安装问题
  8. myfiles_WINDOWSXP-KB936929-SP3-X86-CHS.zip
  9. led屏背后线路安装图解_弱电工程LED屏安装工程施工方案
  10. java 中文转英文性能最快