samedi 27 juin 2015

This is a code from Thinking in Java, I do not understand the output of the code. Please somebody help me

//I am trying to learn Java Regex and encountered a code on which I am stuck from a long while, please explain me the working of this code. //The command line arguement is //String args[] = "abcabcabcdefabc "abc+" "(abc)+" "(abc){2,}"

import java.util.regex.*;

public class PatternMatcher {

public static void main(String[] args) {    
    if(args.length < 2) {     
        System.out.println("Usage:\njava TestRegularExpression " +       
        "characterSequence regularExpression+");       
        System.exit(0);     
        }   

        System.out.println("Input: \"" + args[0] + "\"");    
        for(String arg : args) {      
        System.out.println("Regular expression: \"" + arg + "\"");      
        Pattern p = Pattern.compile(arg);      
        Matcher m = p.matcher(args[0]);       

        while(m.find()) { 
            System.out.println("Match \"" + m.group() + "\" at positions " +        
        m.start() + "-" + (m.end() - 1));      
            }   
        }  
    } 
} 

Output:- Input: "abcabcabcdefabc" Regular expression: "abcabcabcdefabc" Match "abcabcabcdefabc" at positions 0-14 Regular expression: "abc+" Match "abc" at positions 0-2 Match "abc" at positions 3-5 Match "abc" at positions 6-8 Match "abc" at positions 12-14 Regular expression: "(abc)+" Match "abcabcabc" at positions 0-8 Match "abc" at positions 12-14 Regular expression: "(abc){2,}" Match "abcabcabc" at positions 0-8

Aucun commentaire:

Enregistrer un commentaire