记下一些知识。。。。。

Java Pattern类

Pattern在java.util.regex包中,是正则表达式的编译表示形式,此类的实例是不可变的,可供多个并发线程安全使用。

定义

public final class Pattern extends Object implements Serializable

实例的获取

构造器是私有的

private Pattern(String p, intf) {//}

不可在外部调用

可通过静态方法来获取Pattern实例;

public static Pattern compile(String regex) {

return new Pattern(regex, 0);

}

public static Pattern compile(String regex, int flags) {

return new Pattern(regex, flags);

}

第二个方法暂时没用过。。。。。

实例:

String reg = "(http://|https://)?[^/]*\\.(com|cn|net|org|biz|info|cc|tv)";

//执行匹配

Pattern p = Pattern.compile(reg);//把正则表达式编译成模式对象

Matcher m = p.matcher(url);//通过模式对象创建匹配器对象

方法

String pattern()

返回该Patter对象所编译的正则表达式

String[ ] Pattern.split(CharSequence input)

此方法用于(使用正则表达式作为规则来)分隔字符串(去除匹配的字符串),并返回一个String[]。此方法将目标字符串按照Pattern里所包含的正则表达式为模进行分割,它的工作方式类似于使用给定的输入序列和限制参数零调用两个参数的方法

Pattern p=Pattern.compile("\\d+");

String[] str=p.split("我的QQ是:456456我的电话是:0532214我的邮箱是:aaa@aaa.com");

运行结果

str[0]="我的QQ是:" str[1]="我的电话是:" str[2]="我的邮箱是:aaa@aaa.com"

String[] split(CharSequence input, int limit)

input:要拆分的字符序列;limit:结果阈值,控制应用模式的次数(若次数n大于0 ,则得到的数组长度最大为n;若小于0,则不受限制;若为0,则不受限制,但丢弃最后的并且将丢弃尾部空字符串)

bollean Pattern.matcher(String regex,CharSequence input)

此方法是一个静态方法,用于快速匹配字符串,该方法适合用于只匹配一次,且匹配全部字符串.只有整个字符串都匹配了才返回true

等价于 Pattern.compile(regex).matcher(input).matches()

Matcher Pattern.matcher(CharSequence input)

返回一个Matcher对象,Pattern类只能做一些简单的匹配操作,要想得到更强更便捷的正则匹配操作,那就需要将Pattern与Matcher一起合作。

总结

Pattern类用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建,但可以通过Pattern.complie(String regex)简单工厂方法创建一个正则表达式。

java 正则 pattern 线程安全_(一)Java Pattern类----java正则相关推荐

  1. java如何关闭线程池_如何优雅的关闭Java线程池

    ⾯试中经常会问到,创建⼀个线程池需要哪些参数.线程池的工作原理,却很少会问到线程池如何安全关闭的. 也正是因为⼤家不是很关注这块,即便是⼯作三四年的⼈,也会有因为线程池关闭不合理,导致应用⽆法正常st ...

  2. java future 线程 状态_手把手带你了解Java线程的实现方式及生命周期原理

    前言 我们在工作中线程技术很多情况下都能用的到,而且我们在面试的时候,线程技术基本上也是必问的.今天我来从线程的实现方式以及线程的生命周期做一个全面的讲解与分析,帮助大家能更好的去了解线程技术. 概念 ...

  3. java thread 线程销毁_手把手带你了解Java线程的实现方式及生命周期原理

    前言 我们在工作中线程技术很多情况下都能用的到,而且我们在面试的时候,线程技术基本上也是必问的.今天我来从线程的实现方式以及线程的生命周期做一个全面的讲解与分析,帮助大家能更好的去了解线程技术. 概念 ...

  4. 使用线程锁(lock)实现线程同步_一文搞懂Java多线程使用方式、实现原理以及常见面试题...

    本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...

  5. java中execution的作用_一文初步了解Java虚拟机

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 什么是JVM? JVM(Java Virtual Machin ...

  6. java webservice报文过长_工作1-5年的Java程序猿到底需要怎样的一个技术栈?

    工作1-5年的Java程序猿到底需要怎样的一个技术栈? 前言: 具有1-5年开发经验的程序员 需要学习的内容其实还有很多很多. 今天跟大家交流一下希望分享出来的对大家能够有帮助,这是我这些年总结出的一 ...

  7. java实现次方的运算_【技术干货】Java 面试宝典:Java 基础部分(1)

    海牛学院的 | 第 616 期 本文预计阅读 |18 分钟 Java 基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法, ...

  8. 【java笔记】线程(3):Thread类的常用方法

    [JAVA笔记]线程(1):多线程的介绍和实现_m0_52043808的博客-CSDN博客 [java笔记]线程(2):多线程的原理_m0_52043808的博客-CSDN博客 获取线程的名称: St ...

  9. java runtime异常如何解决_成都汇智动力-Java中常见的RunTime异常及异常详解

    java.lang.ArithmeticException算术条件异常.譬如:整数除零等.java.lang.ArrayIndexOutOfBoundsException数组索引越界异常.当对数组的索 ...

最新文章

  1. BZOJ4573 : [Zjoi2016]大森林
  2. 如何使用Swift获取App版本和内部版本号?
  3. nginx下rewrite规则中参数超过10 $10 解决方案
  4. 推荐系统常用的推荐算法
  5. HDU 2202 计算几何
  6. 计算机组成原理随笔(一)
  7. 将本地代码备份到Github public repository
  8. pip国内镜像源矩池云收集(2020年8月)
  9. 不同浏览器CSS隐藏元素滚动条
  10. TranslateAnimation类:位置变化动画类
  11. 三维点云学习(5)5-实现Deeplearning-PointNet-2-classfication
  12. 机器学习 python 库_Python机器学习库
  13. 程序员面试金典——18.4 2的个数
  14. 怎么看蛋白质编码序列_墨鱼的“墨汁”可以吃吗,它有什么营养?看完就明白,涨知识了...
  15. 魅族手机android调试模式吗,怎么开启魅族Pro5 USB调试模式 魅族Pro5 USB调试模式开启方法...
  16. 【手把手 带你准备电赛】解答小课堂——串口通信和串行通信
  17. gm220s路由器怎么设置_教你netgear无线路由器怎么设置全图解教程
  18. spark kryo java_Spark 配置Kryo序列化机制
  19. Obsidian笔记最新版本的功能Callouts,提升方便性和美观程度
  20. 【word】如何让文本中已经使用的样式出现在样式库中?

热门文章

  1. 洛谷 1297 [国家集训队]单选错位——期望
  2. 当配置 DispatcherServlet拦截“/”,SpringMVC访问静态资源的三种方式
  3. [华为机试练习题]51.数列求和
  4. 设置 git/npm/bower/gem 镜像或代理的方法
  5. 无聊闲做,从使用PHP数组实现约瑟夫环问题谈性能
  6. 不是我的错,也不是Atlas的!
  7. HDU 6356.Glad You Came-线段树(区间更新+剪枝) (2018 Multi-University Training Contest 5 1007)...
  8. [HAOI2010]计数 数位DP+组合数
  9. 循环,数组,函数作业
  10. Quartus13.1全编译出现引脚错误(神级bug)