java如何运行正则?

  1. String自带的matches()方法验证。但这种验证是调用了Pattern的matches方法。
 public boolean matches(String regex) {return Pattern.matches(regex, this);//底层源码}
  1. 编译正则表达式
 public static void main(String[] args) {String str="efsefsef2@2@2222";//?<! 匹配\\w+前面跟的不是\\d的内容String reg="(?<!\\d)\\w+";Pattern pattern=Pattern.compile(reg);//先编译正则//再把字符串加入到matcher对象Matcher matcher=pattern.matcher(str);//开始局部匹配遇到第一个符合条件的就停止匹配matcher.find();System.out.println(matcher.group());}

运行结果:
贪婪与懒惰

  1. 当我们不对*,+,?做处理时他就是贪婪的每次匹配都偏向于多的一方。
 public static void main(String[] args) {String str="efsefsef2@2@2222";String reg="\\w+";   //\w 字母数字下划线  ?<=  ?!  ?:Pattern pattern=Pattern.compile(reg);Matcher matcher=pattern.matcher(str);matcher.find();System.out.println(matcher.group());}

结果:

  1. 当我们想让他懒惰时,让他偏向少的一方可以在后面加上?来让我们试下。
 public static void main(String[] args) {String str="efsefsef2@2@2222";String reg="\\w+?";   //\w 字母数字下划线  ?<=  ?!  ?:Pattern pattern=Pattern.compile(reg);Matcher matcher=pattern.matcher(str);matcher.find();System.out.println(matcher.group());}

结果:

  public static void main(String[] args) {String str="efsefsef2@2@2222";String reg="\\w*?";   //\w 字母数字下划线  ?<=  ?!  ?:Pattern pattern=Pattern.compile(reg);Matcher matcher=pattern.matcher(str);matcher.find();System.out.println(matcher.group());}

结果:

同理其他只要加上?就会变得懒惰。

java 正则表达式贪婪与懒惰相关推荐

  1. 正则表达式贪婪与懒惰

    当正则表达式中包含能接受重复的限定符(指定数量的代码,例如*,{5,12}等)时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符.考虑这个表达式:a.*b,它将会匹配最长的以a开始 ...

  2. 正则表达式 贪婪与懒惰

    贪婪:匹配尽可能长的字符串 懒惰:匹配尽可能短的字符串 懒惰模式的启用只需在重复元字符之后加?既可. *? 重复任意次,但尽可能少重复 +? 重复1次或更多次,但尽可能少重复 ?? 重复0次或1次,但 ...

  3. Java 正则表达式匹配模式[贪婪型、勉强型、占有型]

    转载自  Java 正则表达式匹配模式[贪婪型.勉强型.占有型] Greediness(贪婪型):最大匹配 X?.X*.X+.X{n,} 是最大匹配.例如你要用 "<.+>&qu ...

  4. 正则表达式贪婪模式、懒惰模式与独占模式浅析

    正则表达式贪婪模式.懒惰模式与独占模式浅析 一.正则表达式引擎: 正则表达式的执行,是由正则表达式引擎编译执行的,正则表达式引擎分为DFA(Deterministic finite automaton ...

  5. bigint对应java什么类型_「JAVA」从格式化输出到扫描输入,深究Java正则表达式匹配之道

    字符串是不可变的 字符串是不可变的,也就是说当字符串的内容发生改变的时候,会创建一个新的String对象:但是如果内容没有发生改变的时候,String类的方法会返回原字符串对象的引用. 而正则表达式往 ...

  6. java正则表达式爬虫_Java简单爬虫系列(3)---正则表达式和Java正则API的使用

    上一篇内容写了如何请求资源,那么资源请求下载之后我们就要对它就行解析了,解析之前我们先熟悉一下正则表达式 正则表达式在平常使用时还是很广泛的,比如说表单输入验证,验证手机号邮箱之类,Java的字符串匹 ...

  7. java正则表达式中的数量词介绍及区别

    Java的正则表达式相关的类位于 java.util.regex 包中; 这个包中只有一个 MatchResult 接口和 Matcher.Pattern 两个类; 有关正则表达式的使用请参考Java ...

  8. java 正则表达式效验_正则表达式(Java版整理)

    基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...

  9. java正则表达式 匹配次数_正则表达式教程之重复匹配详解

    本文实例讲述了正则表达式教程之重复匹配.分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的[和]之间,有的例子会使用Java来实现,如果是java本身正则表达式的用法 ...

最新文章

  1. 字节「大力」做教育,依然技术思维,1万员工参与,三年不考虑盈利
  2. 永久开启完整版Google Play
  3. HP, That's A Dream Or Not?
  4. Java面向对象程序设计--与C++对比说明:系列2(类机制)
  5. webstorm使用插件 statistic 统计代码
  6. Perl语言学习总结
  7. java递归遍历文件夹_java递归遍历获取目录下所有文件
  8. 测试部门工作周报模板
  9. 【游戏开发创新】用Unity等比例制作广州地铁,广州加油,早日战胜疫情(Unity | 地铁地图 | 第三人称视角)
  10. 微信授权登录(更新。。。)
  11. 初入算法岗的切身经验之谈:干什么?怎么干?如何学?
  12. win7蓝屏_0x0000007e蓝屏代码怎么回事?Win7蓝屏0x0000007e解决方法
  13. gis等高线注记掩膜
  14. python怎么导入数据集keras_keras使用Sequence类调用大规模数据集进行训练的实现
  15. 如何使用 Redis 实现 “附近的人” 这个功能?
  16. mt4服务器修改,修改mt4服务器地址
  17. 数据结构(四)图 —— 编程作业 07 :公路村村通
  18. 学习笔记之Object.getPrototypeOf()方法
  19. 优秀的流程图应该是什么样的?如何制作?
  20. pajek19-20:精简社会网络

热门文章

  1. 计算机桌面太大了,电脑显示器显示太大怎么办
  2. 屏蔽博客园背景动态线条
  3. 笔记本F1音量键常亮,电脑没声音?这里有妙招。
  4. cka考试指南-简单高效
  5. 在ArcMap中画一条彩虹颜色的路
  6. HDFS成员的工作机制
  7. 【强烈推荐】机器学习之算法篇
  8. ActiveX(VB6)+JavaScript让IE浏览器与光标阅读器交互
  9. 洛谷 P4707 【重返现世】
  10. 巴比馒头:年销售20亿背后的数字化秘密