李林超博客
首页
归档
留言
友链
动态
关于
归档
留言
友链
动态
关于
首页
Java
正文
正则表达式--Pattern标记
Leefs
2019-12-27 AM
2406℃
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://lilinchao.com/archives/339.html
上一篇
正则表达式--组(Groups)
下一篇
正则表达式--split()方法
评论已关闭
栏目分类
随笔
2
Java
326
大数据
229
工具
31
其它
25
GO
47
NLP
4
标签云
Kibana
锁
Java
Docker
Http
nginx
SpringCloudAlibaba
FileBeat
Livy
Beego
Elastisearch
Filter
Flink
稀疏数组
工具
SpringCloud
正则表达式
JavaWeb
FastDFS
排序
Golang
Hive
人工智能
MyBatis-Plus
散列
Typora
JavaWEB项目搭建
CentOS
Elasticsearch
Linux
友情链接
申请
范明明
庄严博客
Mx
陶小桃Blog
虫洞
评论已关闭