Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n
X{n,} X,至少 n
X{n,m} X,至少 n 次,但是不超过 m
预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]
字符
x 字符 x
\\ 反斜线字符
\0n 带有八进制值 0 的字符 n (0 <= n <= 7)
\0nn 带有八进制值 0 的字符 nn (0 <= n <= 7)
\0mnn 带有八进制值 0 的字符 mnn(0 <= m <= 3、0 <= n <= 7)
\xhh 带有十六进制值 0x 的字符 hh
\uhhhh 带有十六进制值 0x 的字符 hhhh
\t 制表符 ('\u0009')
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
\f 换页符 ('\u000C')
\a 报警 (bell) 符 ('\u0007')
\e 转义符 ('\u001B')
\cx 对应于 x 的控制符

忽略大小写:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
1.方法1:
public class Test { public static void main(String[] args) throws Exception {
String str="forM"; String regEx="form"; //表示a或f Pattern p=Pattern.compile(regEx,Pattern.CASE_INSENSITIVE); //表示整体都忽略大小写 Matcher m=p.matcher(str); boolean rs=m.find();
System.out.println(rs);
} }
//方法2:java正则表达式:
(?i)abc 表示abc都忽略大小写
a(?i)bc 表示bc忽略大小写
a((?i)b)c 表示只有b忽略大小写

import java.util.regex.*;
class Regex
{
 public static void main(String[] args)
 {
  String str = "faaafbbdbddd";
  String[] strArry = str.split("(.)\\1+");//以连续出现两次以上的字符为分界点,分割字符串
  for(String s:strArry)
   System.out.println(s);
  System.out.println("-------------------------华丽分割线-----------------------------------");

System.out.println(str.replaceAll("(.)\\1+","$1"));//置换匹配的子字符串“$”可以用来取第一个参数中的组
  System.out.println(str.matches(".*[d]{3}.*"));//判断整个字符串是否匹配
  System.out.println("-------------------------华丽分割线-----------------------------------");

String str2 = "aaa,ff,ddd,sdss,dsa,dgdgdg,sss";
  String reg = "\\b[a-z]{3}\\b";//取三个连续的,两边有边界分割
  Pattern p = Pattern.compile(reg);//匹配规则封装
  Matcher m = p.matcher(str2);//将匹配规则和要匹配的字符串组合生成匹配引擎
  //System.out.println("m.matches():"+m.matches());这一句会使匹配的游标后移到第一个不匹配的位置:第一个f
  while(m.find())//引擎可以方便的根据自己的字符串和匹配规则执行一些操作,比如find:找到下一个匹配的子字符串
   /*获取、输出匹配的字段、起始位置、终了位置+1*/
   System.out.println(m.group()+
   "...m.start():"+m.start()+
   "...m.end():"+m.end());
 }
}

示例三:

 public class RegTest {
public static void main(String[] args) throws Exception {
String str="formfirnformsajfowiehongform"; String regEx="f.*?m"; // Pattern p=Pattern.compile(regEx); //表示整体都忽略大小写 Matcher m=p.matcher(str); int i = 0;
while(m.find()) {
System.out.println(m.group()+"------起始位置:"+m.start()+";结束位置"+m.end()+";长度:"+(m.end()-m.start()));
i++;
}
System.out.println("字符串form在str中出现的次数为:"+i); System.out.println(str.substring(4, 12));
}
}

java 正则举例的更多相关文章

  1. Java正则速成秘籍(一)之招式篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  2. Java正则速成秘籍(二)之心法篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  3. Java正则速成秘籍(三)之见招拆招篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

  4. java 正则匹配空格字符串 正则表达式截取字符串

    java 正则匹配空格字符串 正则表达式截取字符串 需求:从一堆sql中取出某些特定字符串: 比如配置的sql语句为:"company_code = @cc and project_id = ...

  5. url 中非法字符替换,java 正则替换

    url在传输时不允许的一些字符串,参考自:http://www.ietf.org/rfc/rfc1738.txt 以下字符用java正则替换为"_",一句话搞定: "{& ...

  6. 通用且常用的Java正则匹配工具,用以检查邮箱名、电话号码、用户密码、邮政编码等合法性

    一个通用且常用的Java正则匹配工具,用以检查邮箱名.电话号码.用户密码.邮政编码等合法性. import java.util.regex.Matcher; import java.util.rege ...

  7. java正则匹配

    java正则提取需要用到Matcher类,下面给出案例示例供参考 需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6import java.util.regex.Matche ...

  8. 面试题-Java设计模式举例

    面试题-Java设计模式举例 1.适配器模式 涉及三个角色:Target目标接口.Adaptee源角色.Adapter适配器:Adapter将源接口适配到目标接口,继承源接口,实现目标接口. Java ...

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

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

随机推荐

  1. 报错:无法将类型"System.Data.EntityState"隐式转换为"System.Data.Entity.EntityState"

    报错:无法将类型"System.Data.EntityState"隐式转换为"System.Data.Entity.EntityState".   出错语句停留 ...

  2. 转 iOS 调试技巧

    调度技巧一: 程序在崩溃的时候,xcode经常没有给出准确的堆栈信息,而是定位在了main方法里,这个让人很是头疼,又怀念起了vs, 其实xcode只要装简单设置一下,就能准确给出堆栈信息了,  打开 ...

  3. Windows 7 卸载 IE10

    今天微软为Windows 7发布了IE10预览版,你是否已经安装?根据笔者的体验,IE10确实如微软所说,在速度.性能等各方面都有了明显提升. 不过,IE10发布预览版安装后会直接替代IE9,如果你想 ...

  4. iOS中alloc与init

    面向对象的3大特性,封装继承和多态. 我遇到过封装相关的问题,因为初级封装简单,常常暴露出被你封装的接口,进一步进行高级封装隐藏接口的时候才发现,封装是一门学问,而这门学问得从最基础的alloc与in ...

  5. 软件系统分析师与架构师技能大PK(您具备了哪些呢?)

    博客转处:http://blog.csdn.net/china_video_expert/article/details/38335613 软件系统分析师与架构师在职责与技能方面没有明显的界线,你中有 ...

  6. NLP知识结构概述

    NLP知识结构概述 1)自然语言处理:利用计算机为工具,对书面实行或者口头形式进行各种各样的处理和加工的技术,是研究人与人交际中以及人与计算机交际中的演员问题的一门学科,是人工智能的主要内容. 2)自 ...

  7. OTL翻译(5) -- otl_stream流相关绑定变量

    声明绑定变量 本章节将详细的说明如何在otl_stream流里面声明绑定变量. SQL语句.SQL语句块或存储过程在程序里面使用的时候总是带有占位符.OTL里面带有一个小的解析器用来解析这些占位符,并 ...

  8. RxJava 设计理念 观察者模式 Observable lambdas MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. 说说CSS样式中你不知道的“大于号”

    继承在一定程度上让程序在编写的过程中更加方便,但是有时候也会给我们的程序带来一定的困扰,所以认真的学习继承的原理,以及处理的方法很重要.下面是Css中处理继承的一个方法.在一段CSS代码中见到一个大于 ...

  10. 【Ansible】Playbook实例

    Learn to build Ansible playbooks with our guide, one step at a time In our previous posts, we introd ...