李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
正则表达式--Pattern标记
Leefs
2019-12-27 AM
1804℃
0条
# 正则表达式--Pattern标记 ### 概念 Pattern类的compile()方法还有另一个版本,它接受一个标记参数,以调整匹配的行为: ```java Pattern Pattern.compile(String regex, int flag) ``` 其中的**flag**来自以下**Pattern**类中的常量: | 编译标记 | 效果 | | ---------------------------- | ------------------------------------------------------------ | | Pattern.CANON_EQ | 当且仅当两个字符的完全规范分解相匹配时,才认为它们是匹配的。例如:如果我们指定这个标记,表达式`\u003F`就会匹配字符串?。在默认情况下,匹配不考虑规范的等价性。 | | Pattern.CASE_INSENSITIVE(?i) | 默认情况下,大小写不敏感的匹配假定只有US-ASCII字符集中的字符才能进行。这个标记允许模式匹配不考虑大小写(大写或小写)。通过指定UNICODE_CASE标记及结合此标记。基于Unicode的大小写不敏感的匹配就可以开启了 | | Pattern.COMMENTS(?x) | 在这种模式下,空格符将被忽略掉,并且以#开始直到行末的注释也会被忽略掉。通过嵌入的标记表达式也可以开启Unix的行模式 | | Pattern.DOTALL(?s) | 在dotall模式下,表达式“.”匹配所有字符,包括行终结符。默认情况下,“.”表达式不匹配行终结符 | | Pattern.MULTILINE(?m) | 在多行模式下,表达式`^`和`$`分别匹配一行的开始和结束。`^`还匹配输入字符串的开始,而`$`还匹配输入字符串的结尾。默认情况下,这些表达式仅匹配输入的完整字符串的开始和结束 | | Pattern.UNICODE_CASE(?u) | 当指定这个标记,并且开启CASE_INSENSITIVE时,大小写不敏感的匹配将按照与Unicode标准相一致的方式进行。默认情况下,大小写不敏感的匹配假定只能在US-ASCII字符集中的字符才能进行 | | Pattern.UNIX_LINES(?d) | 在这种模式下,在.、^和$的行为中,只识别行终结符\n | 在这些标记中,`Pattern.CASE_INSENSITIVE`、`Pattern.MULTILINE`以及`Pattern.COMMENTS`(对声明或文档有用)特别有用。请注意,你可以直接在正则表达式中使用其中的大多数标记,只需要将上表中括号括起的字符插入到正则表达式中,你希望它起作用的位置即可。 还可以通过“或”(`|`)操作符组合多个标记的功能: ```java public class ReFlags { public static void main(String[] args) { Pattern p = Pattern.compile("^java", Pattern.CASE_INSENSITIVE | Pattern.MULTILINE); Matcher m = p.matcher("java has regex\nJava has regex\n" + "JAVA has pretty good regular expressions\n" + "Regular expressions are in Java"); while (m.find()){ System.out.println(m.group()); } } } ``` > 运行结果 ```java java Java JAVA ``` 在这个例子中,我们创建了一个模式,它将匹配所有以"java"、"Java"和“JAVA”等开头的行,并且是在设置了多行标记的状态下,对每一个行(从字符序列的第一个字符开始,至每一个行终结符)都进行匹配。注意,group()方法只返回已匹配的部分。
标签:
Java
,
Java编程思想
,
字符串
,
正则表达式
非特殊说明,本博所有文章均为博主原创。
如若转载,请注明出处:
https://www.lilinchao.com/archives/339.html
上一篇
正则表达式--组(Groups)
下一篇
正则表达式--split()方法
取消回复
评论啦~
提交评论
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
标签云
nginx
Spark
Spark SQL
CentOS
Jenkins
gorm
随笔
JavaSE
LeetCode刷题
RSA加解密
微服务
Redis
MyBatis
Jquery
查找
SpringCloudAlibaba
Yarn
SQL练习题
前端
Docker
JavaWEB项目搭建
机器学习
Elasticsearch
Java编程思想
Kibana
Golang
哈希表
队列
Golang基础
Linux
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞