Java对正则表达式的支持(一)

  Java对正则表达式的支持主要体现在String、Pattern、Matcher和Scanner类。

 1.Pattern、Matcher

  先看一个Pattern和Matcher类使用正则表达式的例子。

public class PatternTest {    

    public static void main(String [ ] args) {
        String testString = "abcabcabcdefabc";
        String [] regexs = new String []{"abc+","(abc)+","(abc){2,}"};
        
        for(String regex:regexs){
            Pattern p = Pattern.compile(regex);
            Matcher m = p.matcher(testString);
            
            System.out.println("test regex: " + regex);
            while(m.find()){
                System.out.println("match " + m.group() + " at position " + m.start() + "-" + (m.end() -1));
            }
        }
    }
    
}

  运行的结果为:

test regex: abc+
match abc at position 0-2
match abc at position 3-5
match abc at position 6-8
match abc at position 12-14
test regex: (abc)+
match abcabcabc at position 0-8
match abc at position 12-14
test regex: (abc){2,}
match abcabcabc at position 0-8

  先对几个正则表达式的含义进行解释:

  abc+:匹配abc或者abcc或者abccc等。

  (abc)+:根据贪婪原则,匹配1次或者多次连续的abc,匹配最长的字符串。

  (abc){2,}:abc至少出现2次,匹配abcabc或者abcabcabc等。

  

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。