字符类

  [abc]                              匹配a、b、c任意一个字符

  [^abc]          匹配除了a、b、c外的任意一个字符

  [a-zA-Z]          匹配a-z或A-Z中的任意一个字符

  [a-d[m-p]]         匹配a-d或m-p中的任意一个字符,取交集,等价于[a-dm-p]

  [a-z&&[def]]        匹配d、e、f中任意一个字符

  [a-z&&[^bc]]       匹配a-z中除了b、c外的任意一个字符,等价于[ad-z]

  [a-z&&[^m-p]]       匹配a-z中除了m-p范围内的任意一个字符,等价于[a-lq-z]

预定义的字符类

  .                        匹配除了换行符以外的任意字符

  \d      匹配数字,等价于[0-9]

  \D        匹配任意非数字的字符

  \h                      匹配水平空白字符(比如\t)

  \H        匹配非水平空白字符[^\h]

  \s           匹配任意空白符

  \S           匹配任意不是空白符的字符

  \v           匹配垂直空白字符(比如\n)

  \V          匹配非垂直空白字符[^\v]

  \w          匹配字母或数字或下划线,等价于[a-zA-Z_0-9]

  \W         匹配任意不是字母、数字、下划线、汉字的字符,等价于[^a-zA-Z_0-9]

边界匹配器

  ^        匹配字符串的开始

  $        匹配字符串的结束

  \b       匹配单词的开始或结束

  \B         匹配不是以单词开头或结束的位置

  \G      前一个匹配的结束

  []       显示限制条件中的任意一个字符

显示次数

  *         重复零次或更多次

  ?        重复零次或一次

  +        重复一次或更多次  

  {n}        重复N次

  {n,}         重复N到多次

  {n,m}      重复N到M次

示例

  ◆ ^为限制开头

    ^java    条件限制为以Java为开头字符

  ◆ $为限制结尾

    java$    条件限制为以java为结尾字符

  ◆ . 条件限制除/n以外任意一个单独字符

    java..    条件限制为java后除换行外任意两个字符

  ◆ 在限制条件为特定字符出现0次以上时,可以使用「*」

    J*       0个以上J

    .*      0个以上任意字符

    J.*D    J与D之间0个以上任意字符

  ◆ 在限制条件为特定字符出现1次以上时,可以使用「+」

    J+     1个以上J

    .+      1个以上任意字符

    J.+D    J与D之间1个以上任意字符

  ◆ 在限制条件为特定字符出现有0或1次以上时,可以使用「?」

    JA?    J或者JA出现

  ◆ 限制为连续出现指定次数字符「{a}」

    J{2}    JJ

    J{3}    JJJ

  ◆ 文字a个以上,并且「{a,}」

    J{3,}     JJJ,JJJJ,JJJJJ,???(3次以上J并存)

  ◆ 文字个以上,b个以下「{a,b}」

    J{3,5}   JJJ或JJJJ或JJJJJ

  ◆ 两者取一「|」

    J|A       J或A

    Java|Hello   Java或Hello

  ◆ 「()」中规定一个组合类型

    查询<a href=/"index.html/">index</a>中<a href></a>间的数据,可写作<a.*href=/".*/">(.+?)</a>

Demo

方法一:

     String rex = "[a-z[d-m]]";
Pattern p = Pattern.compile(rex);
Matcher matcher = p.matcher("f");
boolean matches = matcher.matches();

方法二:

     String rex = "[a-z[d-m]]";     
boolean matche = Pattern.matches(rex, "d");

PS:

Pattern API(Java Platform SE 8)网址:https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html

 

正则表达说明—Pattern API的更多相关文章

  1. Java正则表达中Greedy Reluctant Possessive 的区别

    Java正则表达中Greedy Reluctant Possessive 的区别 分类: java2015-01-16 00:28 1280人阅读 评论(9) 收藏 举报 正则表达式Java   目录 ...

  2. js正则表达test、exec和match的区别

    test的用法和exec一致,只不过返回值是 true false. 以前用js很少用到js的正则表达式,即使用到了,也是诸如邮件名称之类的判断,网上代码很多,很少有研究,拿来即用. 最近开发遇到一些 ...

  3. 正则表达示 for Python3

    前情提要 从大量的文字内容中找到自己想要的东西,正则似乎是最好的方法.也是写爬虫不可缺少的技能.所以,别墨迹了赶紧好好学吧! 教程来自http://www.runoob.com/python3/pyt ...

  4. shell正则表达

    shell正则表达 .*和.?的比较: 比如说匹配输入串A: 101000000000100 使用 1.*1 将会匹配到1010000000001,匹配方法:先匹配至输入串A的最后, 然后向前匹配,直 ...

  5. 转转转---js正则表达exec与match的区别说明

    正则表达式对象有两个定义方式:: 1.第一种定义: new RegExp(pattern, attributes);如var reg = new RegExp("abc",&quo ...

  6. python——re模块(正则表达)

    python——re模块(正则表达) 两个比较不错的正则帖子: http://blog.csdn.net/riba2534/article/details/54288552 http://blog.c ...

  7. PHP 正则表达示

    PHP 正则表达示 php如何使用正则表达式 正则表达式基本元字符 #正则表达式示例 ^:匹配输入字符串开始的位置.如果设置了 RegExp 对象的 Multiline 属性,^ 还会与“\n”或“\ ...

  8. php 正则表达示中的原子

    原子 原子是正则表达示里面的最小单位,原子说白了就是需要匹配的内容.一个成立的正则表达示当中必须最少要有一个原子.大理石平台精度等级 所有可见不可见的字符就是原子 说明:我们见到的空格.回车.换行.0 ...

  9. Javascript正则构造函数与正则表达字面量&&常用正则表达式

    本文不讨论正则表达式入门,即如何使用正则匹配.讨论的是两种创建正则表达式的优劣和一些细节,最后给出一些常用正则匹配表达式. Javascript中的正则表达式也是对象,我们可以使用两种方法创建正则表达 ...

随机推荐

  1. %02d %03d

    strTemp.Format("%02d",m_unEditPosition); %02d 输出两位整数,不足两位的前面加0,比如05,06…… %03d 输出三位整数,不足两位的 ...

  2. Linux Ctrl+Z的使用方法

    假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,终止这个程序,然后可以看到系统提示: [1]+ Stopped /root/bin/rsync.sh 然后 ...

  3. dumpbin检查Dll

    用dumpbin.exe工具查看DLL,dumpbin.exe是VS自带的工具.版本VS2013,路径是:G:\VS2013\VC\bin\amd64\ 可以看到dumpbin.exe. 使用VS里的 ...

  4. 标准C++中的string

    转自http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 要想使用标准C++中string类,必须要包含 #include & ...

  5. 2.4 hive创建表实例讲解

    一.create table ## 员工表 create table IF NOT EXISTS default.emp( empno int, ename string, job string, m ...

  6. 国内互联网公司的开源项目及github地址汇总

    国内互联网公司的开源项目及github地址汇总 阿里 阿里的开源项目很多,这也跟@淘宝正明的开源态度密不可分.有很多重量级的项目,例如LVS.Tengine,或者很有实践价值的中间件,例如 MetaQ ...

  7. 技术胖Flutter第三季-14布局RowWidget的详细讲解

    flutter总的地址: https://jspang.com/page/freeVideo.html 视频地址: https://www.bilibili.com/video/av35800108/ ...

  8. 08.IdentityServer4登录中心

    08.IdentityServer4登录中心 IdentityServer就是一套Framework,实现了OAuth的授权 理解OAuth流程,学会怎么使用他 http://ruanyifeng.c ...

  9. python之文件的读写(2)

    小R昨天因为在研究weblogic的漏洞就没来得及学习python(好吧,这都是借口,懒了,大家可不能像我这样.要坚持每天都学).   这个进度是有点慢呀.哎呀,没事没事,我还年轻,才20岁.  哈哈 ...

  10. mysql 自动备份命令

    --1.全备 --single-transaction:基于此选项能实现热备InnoDB表  --databases要备份的表名mysqldump -u root -p --single-transa ...