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. java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener

    一:如果出现下面的错误信息,如果你的项目是Maven结构的,那么一般都是你的项目的Maven Dependencies没有添加到项目的编译路径下: 信息: The APR based Apache T ...

  2. Arcgis Runtime for andriod 100 加载TPK

    private void LoadTPK() { YLPub.pContext = this; String path = YLPub.getMapData() + "/gismap/map ...

  3. Animatepacker for cocos2d-x 3.0 解析

    AnimatePacker 是大神老G为cocos2d-x2.0做的一个很简洁的工具 近期 e 的新项目用的是最新的cocos2d-x 3.0,因此改进了对应的解析代码 说明: 1.工具还是用的之前的 ...

  4. tyvj P2018 「Nescafé26」小猫爬山 解题报告

    P2018 「Nescafé26」小猫爬山 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Freda和rainbow饲养了N只小猫,这天,小猫们要去爬山.经 ...

  5. codeforces 560 C Gerald&#39;s Hexagon

    神精度--------这都能过.随便算就好了,根本不用操心 就是把六边形补全成三角形.然后去掉补的三个三角形,然后面积除以边长1的三角形的面积就可以.... #include<map> # ...

  6. C++类模板的声明和定义为什么要放在同一个文件

    不是只能放在.h里面,但是推荐放在.h里面.STL模板实现全部是放在.h里面的.------------------编译能通过.1)参与编译的只是.cpp文件,不会报错的原因,是因为它能在.h里面找到 ...

  7. spring cloud 报错Error creating bean with name 'hystrixCommandAspect' ,解决方案

    spring cloud 升级到最新版 后,报错: org.springframework.beans.factory.BeanCreationException: Error creating be ...

  8. JavaScript生成GUID的方法

    一.生成GUID的方法一     JScript 代码   复制 function guid() { function S4() { return (((1+Math.random())*0x1000 ...

  9. a标签默认颜色

    <a href="www.baidu.com">test</a> <span style="color:#428bca;"> ...

  10. Java基础(三):修饰符、运算符、循环结构和分支结构

    一.Java修饰符: Java语言提供了很多修饰符,主要分为以下两类:访问修饰符和非访问修饰符.修饰符用来定义类.方法或者变量,通常放在语句的最前端. 1.访问控制修饰符: Java中,可以使用访问控 ...