字符类

  [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. setData 设置某个数组或者数组对象的值

    demo:list是一个对象数组,设置list数组某个对象的值 下标是动态index的value值 let item='list['+index+'].value'; this.setData({ [ ...

  2. wannafly test D

    题意: 给定n,m求满足: 1.a[i][j]互不相同,且有$1<=a[i][j]<=n*m$ 2.对于$a[i1][j1],a[i2][j2]$,如果有 $i1 \oplus j1 &g ...

  3. 3.4-3.6 依据业务需求分析HBase的表设计

    一.依据[话单]查询需求分析HBase的表设计 1.分析 用户需要进行实时的查询,那么这些数据是放在HBase当中的,每个客户每天接打电话至少20个左右,而通信公司拥有很多用户,每天产生的数据都是上亿 ...

  4. 不能支持C++11的特性~,升级到4.8.2

    一.简易安装 操作环境 CentOS6.5 64bit,原版本4.4.7,不能支持C++11的特性~,希望升级到4.8.2 不能通过yum的方法升级,需要自己手动下载安装包并编译 1.1 获取安装包并 ...

  5. MySQL基础知识(一)-超详细MySQL安装教程

    简介 原计划,今天这篇想要给小伙伴们讲解一下python操作mysql数据库,但是由于近期换了一台新的电脑,所以一看mysql数据库都没安装,所有才有了这篇文章.尽管网上不乏此类型的文章,但是刚好自己 ...

  6. 3 手写Java HashMap核心源码

    手写Java HashMap核心源码 上一章手写LinkedList核心源码,本章我们来手写Java HashMap的核心源码. 我们来先了解一下HashMap的原理.HashMap 字面意思 has ...

  7. Android教程

    转载,但请务必在明确位置注明出处! http://stormzhang.com/android/2014/07/07/learn-android-from-rookie/ Android Killer ...

  8. OPENGL0_简介

    opengl定义: Open Graphics Library,开放图形程序接口,跨平台,跨语言.提供了与底层图形硬件的接口,是一个功能强大的底层图形库. opengl库种类: gl:核心库,常规,核 ...

  9. mysql--浅谈查询1

    这是对自己学习燕十八老师mysql教程的总结,非常感谢燕十八老师. 依赖软件:mysql5.6 系统环境:win 在谈查询之前,先说一个特别重要的概念 一定将列名看成变量,既然是变量就可以运算 一定将 ...

  10. bzoj2825:[AHOI2012]收集资源

    传送门 看到数据范围这么小,就没想过暴力的办法么 考虑肯定是从近走到远,所以走的点之间一定没有其他的点,所以我们就可以暴力的建图,然后暴力的去dfs就好了 代码: #include<cstdio ...