package test;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Test {

public static void main(String[] args) {

testDOTALL();

}

public static void testDOTALL() {

String str =

"aaa\nbbb";

String

pattern = ".+";

//

DOTALL

//点匹配全部内容,包括系统换行符

print(str,

pattern, Pattern.DOTALL,

"DOTALL");

// NOT

DOTALL:set flag not is Pattern.DOTALL

//点匹配不全部内容的情况,也就是说系统换行符不会被匹配

print(str,

pattern, Pattern.CASE_INSENSITIVE, "NOT DOT

ALL");

//

UNIX_LINES

//以

\n为行分隔符,这里aaa\n的匹配结果是两行aaa和bbb

print(str,

pattern, Pattern.UNIX_LINES,

"UNIX_LINES");

str =

"aaa\r\nbbb";

//如果指定此模式,window下的行分隔符’\r’也被当作常规字符处理。

print(str,

pattern, Pattern.UNIX_LINES, "UNIX_LINES IN

WINDOWS");

//

COMMENTS

str =

"aaba\r\naab ab\r\nbbb";

pattern =

"aa.+#comment";

//注释模式是从#到末尾都是注释,该正则表达式只编译#之前的字符串作为pattern.

print(str,

pattern, Pattern.COMMENTS,

"COMMENT");// whitespace is

ignored.

//

MULTILINE

pattern =

".+b$";

//多行模式^、$分别表示匹配行首和行尾。

print(str,

pattern, Pattern.MULTILINE,

"NULTILINE");

//

LITERAL

pattern =

"bb";

//将正则表达式中常用的字符视为单个字符处理,比如点(.)在此模式中只匹配点字符,不匹配除点之外的其他字符。

print(str,

pattern, Pattern.LITERAL,

"LITERAL");

// .+is

literal and not as regex pattern

pattern =

".+bb";

print(str,

pattern, Pattern.LITERAL,

"LITERAL");

//如果Unicode的编码和字符的Ascoll码值是一样的,则进行匹配,如A和\u0041

print("AA","\u0041",Pattern.CANON_EQ,"CANON_EQ");

//unicode的匹配中区分大小写

print("aa","\u0041",Pattern.UNICODE_CASE,"UNICODE_CASE");

//unicode的匹配中不区分大小写

print("aa","\u0041",Pattern.UNICODE_CASE|Pattern.CASE_INSENSITIVE,"UNICODE_CASE|CASE_INSENSITIVE");

//只有jdk1.7+才支持,在正则中使用UNICODE_CHARACTOR_CLASS进行匹配,详细信息见文章末尾的列表。

print("aaAB","\\p{Lower}",Pattern.UNICODE_CHARACTER_CLASS,"UNICODE_CHARACTER_CLASS");

print("aaAB","\\p{Upper}",Pattern.UNICODE_CHARACTER_CLASS,"UNICODE_CHARACTER_CLASS");

}

public static void print(String str, String

pattern, int mode, String modeName) {

Pattern p =

Pattern.compile(pattern, mode);

Matcher m =

p.matcher(str);

System.out.println("set pattern

mode:" +

modeName+"

PATTERN:"+pattern);

int i =

0;

while

(m.find()) {

i++;

System.out.println("group(" +

String.valueOf(i) + "):" +

m.group(0));

}

}

}

java is alphabetic_JDK之Pattern类探索(一)相关推荐

  1. Java学习笔记之Pattern类的用法详解(正则表达式)

    转自:https://www.cnblogs.com/sparkbj/articles/6207103.html EG: //验证邮箱 public static final String REGEX ...

  2. java正则表达式对象_Java正则表达式之Pattern类

    java.util.regex.Pattern类指正则表达式的编译表示形式.即将你的正则表达式字符串编译成java正则表达式对象.所有的正则表达式字符串在使用前都必须先编译成Pattern类的实例.然 ...

  3. java正则表达式类_java中正则表达式之Pattern类与Matcher类

    java中正则表达式之Pattern类与Matcher类 ======================================================================= ...

  4. JAVA正则表达式:Pattern类与Matcher类详解(转)

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  5. JAVA正则表达式:Pattern类与Matcher类详解

    java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表 ...

  6. Java通过Pattern类使用正则表达式

    java正则表达式-java.util.regex.Pattern类判断指定数据 代码示例: 1 /** 2 * 判断字符串是否是数字 3 */ 4 @Test 5 public void testI ...

  7. 第三次学JAVA再学不好就吃翔(part66)--Pattern类和Matcher类

    学习笔记,仅供参考 文章目录 Pattern类 典型的调用顺序 Pattern类的compile方法 Pattern类的matcher方法 Matcher类的matches方法 Matcher类 fi ...

  8. Java Pattern类和Matcher类的使用

    java.util.regex 是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包.它包括两个类:Pattern 和 Matcher. Pattern 对象是正则表达式编译后在内存中的表示形 ...

  9. java 正则 pattern 线程安全_(一)Java Pattern类----java正则

    记下一些知识..... Java Pattern类 Pattern在java.util.regex包中,是正则表达式的编译表示形式,此类的实例是不可变的,可供多个并发线程安全使用. 定义 public ...

最新文章

  1. 《CCIE路由和交换认证考试指南(第5版) (第2卷)》——1.2节构建BGP邻居关系...
  2. vue-jwt 实战
  3. C++程序设计方法3:强制类型转换
  4. SAP customer engagement center Fiori界面登录后的处理
  5. python xml.dom模块解析xml
  6. 软件构造学习笔记-第十三周
  7. 二进制文件和普通文件(文本文件)区别
  8. GitHub提速方法大揭秘,10M速度使用无忧
  9. HTML5_Canvas_属性、定义及方法
  10. SpringBoot工程发布
  11. 初探Linux内核态——通过proc文件系统作快速问题定位
  12. java如果文件存在则删除_Java删除文件(如果存在)的更好方法
  13. 运维安全操作建议规范手册
  14. pandas用in筛选数据
  15. android 标签云圆形,JavaScript实现的圆形浮动标签云效果实例
  16. 2023年陕西师范大学宗教学考研上岸前辈备考经验指导
  17. 三个小孩去饭店点菜用计算机算钱,去饭店别点这三个菜!点菜“潜规则”你该知道(组图)...
  18. 大学英语精读第三版(第三册)学习笔记(原文及全文翻译)——8B - Dreams — What Do They Mean?(梦意味着什么?)
  19. 学python重点是什么_如果只有1小时学Python,看这篇就够了
  20. [嵌入式基础]-arm架构和x86架构区别

热门文章

  1. ESRGAN:基于GAN的增强超分辨率方法(附代码解析)
  2. 基于深度迁移学习进行时间序列分类
  3. 直播预告 | 亚马逊高级应用科学家熊元骏:人类行为理解研究进展
  4. 数字和字符串的相互转化
  5. python3 音乐播放器_python3 音乐播放器
  6. python分支机构_python通过什么来判断操作是否在分支结构中
  7. 解决XML中报“cvc-complex-type.2.4.a: Invalid content was found starting with element ”错误
  8. Spring Cloud Gateway——2020.x以上版本HTTP 503 或 NoLoadBalancer[负载均衡]解决方案
  9. TensorFlow 2——【module ‘tensorflow.compat.v1‘ has no attribute ‘contrib‘】解决方案
  10. BugKuCTF WEB flag在index里