java正则表达式中的数量词
java中的正则位于java.util.regex包中,这个包中只有一个MatchResult接口和Matcher、Pattern两个类。
正则中的数量词有Greedy (贪婪)、Reluctant(懒惰)和Possessive(强占)三种
Greedy 数量词
X?
X,一次或一次也没有
X*
X,零次或多次
X+
X,一次或多次
X{n}
X,恰好 n 次
X{n,}
X,至少 n 次
X{n,m}
X,至少 n 次,但是不超过 m 次
Greedy是最常用的,它的匹配方式是先把整个字符串吞下,然后匹配整个字符串,如果不匹配,就从右端吐出一个字符,再进行匹配,直到找到匹配或把整个字符串吐完为止。
Matcher m=Pattern.compile("a.*b")
.matcher("a====b=========b=====");
while(m.find()){
System.out.println(m.group());
}
输出:
a====b=========b
因为总是从最大 匹配开始匹配,故称贪婪。
Reluctant 数量词
X??
X,一次或一次也没有
X*?
X,零次或多次
X+?
X,一次或多次
X{n}?
X,恰好 n 次
X{n,}?
X,至少 n 次
X{n,m}?
X,至少 n 次,但是不超过 m 次
Reluctant正好和Greedy相反,它先从最小匹配开始,先从左端吞入一个字符,然后进行匹配,若不匹配就再吞入一个字符,直到找到匹配或将整个字符串吞入为止。
Matcher m=Pattern.compile("a.*?b")
.matcher("a====b=========b=====");
while(m.find()){
System.out.println(m.group());
}
输出:
a====b
因为总是从最小匹配开始,故称懒惰。
Possessive 数量词
X?+
X,一次或一次也没有
X*+
X,零次或多次
X++
X,一次或多次
X{n}+
X,恰好 n 次
X{n,}+
X,至少 n 次
X{n,m}+
X,至少 n 次,但是不超过 m 次
Possessive和Greedy的匹配方式一样,先把整个字符串吞下,然后匹配整个字符串,如果匹配,就认为匹配,如果不匹配,就认为整个字符串不匹配,它不会从右端吐出一个字符串再进行匹配,只进行一次
Matcher m=Pattern.compile("a.*+b")
.matcher("a====b=========b=====");
while(m.find()){
System.out.println(m.group());
}
输出:
因为贪婪但并不聪明,故称强占。
相关文档:
先来了解一下链表模式的原理:
首先写一个JavaBean,内容是要添加的元素和该元素的节点。
public class NodeBean implements Serializable
{
private Object data; //元素本身
private NodeBean next; //下一个节点
&n ......
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
/**
* 文件列表。<br>
* 可以指定过滤条件。
*
* @author leo
*
*/
public class FileList {
/**
* @param args
*/
public static void main(String[] ......
这两天学校开始让我们这一大批高费生选择自己的专业方向,Focuser
我
经过好几个年头的思考,并且在我们亲爱c#老师热情的向
我们介绍.net的前景后,毅然坚定的选择了java这条自己认为前程似锦的道路。以下的这些网站是我平时经常访问的一些国外的英文java网站,今天特
地的发布给大家,希望我们能够真正的学习到jav ......
JAVA中的依赖倒原则
美国法律有一条最基本的准则就是“人人平等”,我们不去管它是经过什么样的斗争、什么样的流血牺牲换来的,只把它理解为一个JAVA方法,该方法定义如下:
public final boolean 人人平等(人1,人2){
return true;
&n ......
JAVA中用于处理字符串的“三兄弟”
JAVA中用于处理字符串常用的有三个类:java.lang.String、java.lang.StringBuffer、java.lang.StringBuilder,这三者的共同之处都是final类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用。 ......