pattern类的方法有哪些,pattern语法
模式的使用方法
爪哇正则表达式由java.util.regex包下的模式和制榫机类实现
模式类用于创建正则表达式。也就是说,它用于创建匹配模式。可以使用两种静态方法创建:编译(字符串注册)和编译(字符串注册,int标志)。其中正则表达式是正则表达式,标志是可选图案)等等
实例:
模式模式=模式。com桩(Java);
//返回此模式的正则表达式为爪哇
系统。出去。println(模式。格局));
模式类有两种根据匹配模式划分输入序列的方法。是剥离(charsequenceinput)和剥离(charsequenceinput,int limit)。其中限制是返回元素的数量。
实例:
模式模式=模式。com桩(Java);
string test= 123 Java 456 Java 789 Java ;
string [ ]结果=pattern.split(测试;
for(字符串:结果)。
系统出去。println(s;
结果:
123
456
789
深入介绍剥离(charsequenceinput,int limit),如果限制的值大于或等于返回的最大字符串数,则返回的字符串数没有限制,但末尾可能包含空字符串如果极限=0,则为拆分(剪切)charsequenceinput)和
模式模式=模式。com桩(Java);
string test= 123 Java 456 Java 789 Java ;
string[]结果=模式。分裂(测试,2);
for(字符串:结果)。
系统出去。println(s;
结果=Pattern.split(test,10);
系统。出去。println(结果。长度;
result=Pattern.split(test,-2);
系统。出去。println(结果。长度;
result=Pattern.split(test,0);
系统。出去。println(结果。长度;
执行结果:
123
456Java789Java
四
四
3
此处显示了另一列爪哇岛开发工具包源代码。
例如,输入"嘘:还有:福"会产生以下结果
带有这些参数的结果:正则表达式
极限运动
结果
:
2
{ boo , and:foo }
:
5
{ boo 、 and 、 foo }
:
-2
{ boo 、 and 、 foo }
o
5
{ b ,,:and:f ,,, }
o
-2
{ b ,,:and:f ,,, }
o
0
{ b 、、和:f }
模式类也附带静态匹配方法匹配(stringregex,CharSequence输入),但只能进行完全字符串匹配,只能返回是否匹配的布尔值
实例:
字符串测试1= Java
String test2= Java123456
系统。出去。println(模式。matches( Java ,test1);返回真实的
系统出去。println(模式。matches( Java ,测试2);返回错误的
如何使用制榫机类
最后迁移到制榫机类100 .模式类的匹配器(charsequenceinput)返回制榫机对象。
制榫机系提
供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持,要想得到更丰富的正则匹配操作,那就需要将模式与制榫机联合使用。
实例:
模式模式=模式。编译( Java );
string test= 123 Java 456 Java 789 Java ;
匹配器matcher=模式。matcher();
制榫机类提供了三个返回布尔型值得匹配方法:matches()、lookingAt()、find()、find(int start),其中匹配()用于全字符串匹配,看着从字符串最开头开始匹配满足的子串,找到可以对任意位置字符串匹配,其中开始为起始查找索引值。
实例
模式模式=模式。编译( Java );
String test1= Java
String test2= Java1234
字符串test3=1234Java
//匹配方法需要整个字符串都匹配正则才返回真实的
//返回真实的
匹配器matcher=模式。匹配器(test1);
系统。出去。println(匹配器。matches());
//返回错误的
matcher=模式。匹配器(测试2);
系统。出去。println(匹配器。matches());
//查看需要字符串是以正则模式开头,才返回真实的
//返回真实的
matcher=模式。匹配器(测试2);
系统。出去。println(匹配器。望());
//返回错误的
matcher=模式。匹配器(测试3);
系统。出去。println(匹配器。望());
//从相应的下标开始匹配,只要有匹配到的就返回真实的
//返回真实的
matcher=模式。匹配器(test1);
系统。出去。println(匹配器。find());
//返回真实的
matcher=模式。匹配器(测试2);
系统。出去。println(匹配器。find());
matcher=模式。匹配器(测试3);
//返回真实的
系统。出去。println(匹配器。find(2));
matcher=模式。匹配器(测试3);
//返回错误的
系统。出去。println(匹配器。find(5));
这里介绍下组的概念:组是用括号划分的正则表达式,可以根据组的编号来引用这个组。组号为0表示整个表达式,组号为一表示被第一对括号括起的组,依次类推,例如A(B(C))D,组0是ABCD,组一是公元前,组2是丙。
但是类似于(?模式)格式的子表达式不能算是一个分组。
通过(?java)这种形式可以给分组命名,其中中就是分组的名称
制榫机类提供了开始(),结束(),组()分别用于返回字符串的起始索引,结束索引,以及匹配到到的字符串。
实例:
模式模式=模式。编译((Java));
匹配器matcher=模式。匹配器( 12 Java自由爪哇岛之路);
int组计数=匹配器。组计数();
系统。出去。println(组计数);
组计数=匹配器。组计数();
系统。出去。println(组计数);
while (matcher.find()) {
int start=matcher。start();
int end=matcher。end();
字符串组=匹配器。group();
系统。出去。println( start:end:group- start : end : group);
}
制榫机类提供了start(int gropu),end(int group),group(int i),groupCount()用于分组操作
实例:
模式模式1=模式。编译((?Java)(python));
匹配器匹配器1=模式1。匹配器( Java自由爪哇岛之路爪哇之旅自由之路python’);
//输出假的,因为要满足整个字符串匹配正则才输出真实的
系统。出去。println(匹配器1。matches());
//输出假的,因为要满足字符串以正则模式开头才输出真实的
系统。出去。println(匹配器1。望());
//输出分组数量:2
//加上默认分组其实有三个分组:javapython、java、python
int count=匹配器1。组计数();
System.out.println(分组数量:计数);
while (matcher1.find()) {
System.out.println(find str . );
for(int I=0;我=计数;i ) {
int start=matcher 1。开始(一);
int end=matcher 1。结束(一);
字符串组=匹配器1。第一组;
系统。出去。println( start:end:group- start : end : group);
}
//通过分组名称来获取分组的值
系统。出去。println( XXX-匹配器1。组( P1 );
}
制榫机类还提供区域(整数开始,整数结束)(不包括结束)方法用于设定查找范围,并提供regionStrat()和regionEnd()用于返回起始和结束查找的索引。
这个方法和发现方法类似,但是比发现方法更强大。
发现方法只能制定开始下标。但是地区可以指定一个范围。
模式模式=模式。编译( Java );
字符串测试= 123JavaJava
匹配器matcher=模式。匹配器(测试);
matcher.region(7,11);
//返回七
系统。出去。println(匹配器。区域start());
//返回11
系统。出去。println(匹配器。region end());
火柴人。find();
//返回爪哇
系统。出去。println(匹配器。group());
制榫机类提供了两种用于重置当前匹配器的方法:重置()和复位(字符序列输入)
模式模式=模式。编译( Java );
字符串测试= Java
匹配器matcher=模式。匹配器(测试);
火柴人。find();
//返回爪哇
系统。出去。println(匹配器。group());
//从起始位置重新匹配
火柴人。reset();
火柴人。find();
//返回爪哇
系统。出去。println(匹配器。group());
//返回错误的
//相当于matcher=模式。matcher( Python );
火柴人。重置( Python );
系统。出去。println(匹配器。find());
最后说一下制榫机类的匹配方法:replaceAll(字符串替换)和替换优先(字符串替换),其中全部替换是替换全部匹配到的字符串,而替换优先仅仅是替换第一个匹配到的字符串。
模式模式=模式。编译( Java );
字符串测试= JavaJava
匹配器matcher=模式。匹配器(测试);
//返回PythonPython
系统。出去。println(匹配器。替换所有( Python );
//返回PythonJava
系统。出去。println(匹配器。先替换( python );
还有两个方法追加替换(字符串缓冲区sb,字符串替换)和appendTail(StringBuffer sb)也很重要,追加替换允许直接将匹配的字符串保存在另一个字符串缓冲器中并且是渐进式匹配,并不是只匹配依次或匹配全部,而附录尾则是将未匹配到的余下的字符串添加到字符串缓冲器中。
模式模式=模式。编译( Java );
匹配器matcher=模式。matcher( Java 1234 );
//返回真实的
系统。出去。println(匹配器。find());
字符串缓冲区sb=新字符串缓冲区();
matcher.appendReplacement(sb, Python );
//输出计算机编程语言
系统。出去。println(sb);
火柴人。附录(某人);
//输出Python1234
系统。出去。println(sb);
总结
暂时就记录这么多,需要的时候再总结。