易截截图软件、单文件、免安装、纯绿色、仅160KB

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());
}
输出:

因为贪婪但并不聪明,故称强占。


相关文档:

Java 读取其他网页

<%
 URL url = new URL("http://www.itpub.net");
//建立URL对象,并实例化为url,获得要抓取的网页地址
 BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(),"GB2312"));
//建立BufferedReader对象,并实例化为reader,这里的GB2312是要抓取的网页编码格式
 whi ......

【IBM需求信息】 JAVA, C/UNIX需求

大家好,这里有IBM的三个长期需求:均是需要2年以上相关工作经验,其中Java以及Testing需要英语可以交流,C/Unix不需要语言。
Java 大连
描述:Java programming, knowledge in J2SE, SWT/JFace, XML. Eclipse programming, knowledge in eclipse architecture. Clear understanding of plugin development. Hands-on exp ......

C#与Java的命名规则

C# Java命名规则
C#  (C#高级编程,微软设计模式)
命名空间,类,方法 :每个单词的第一个字母大写  例 ServerCode。
(采用Pascal大小写规则)
 
私有成员:单词的第一个字母小写,通常前面加上“_” 例 _name 或 _serverCode。
(采用camell大小写规则)
 
 
Java (java设计 ......

Java中的值传递和引用传递

在java中实质只存在一种传递方式:即值传递。 而引用传递是对C/C++而言的。结论:
  对于基本类型,在方法体内对方法参数进行重新赋值,并不会改变原有变量的值。
  对于引用类型,在方法体内对方法参数进行重新赋予引用,并不会改变原有变量所持有的引用。
  方法体内对参数进行运算,不影响原有变量的值。
   ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号