2016-09-01 2 views
-2

Ich bin ein regulärer Ausdruck in String zu schreiben und Muster, sondern Ergebnis unterschiedlich sind, mich pls lassen den UnterschiedWas ist der Unterschied zwischen String Matches und Pattern Matcher Class?

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
import java.util.Scanner; 
class HelloWorld 
    { 

    public static void main(String s[]) 
     { 

     Pattern p = Pattern.compile("[0-255]*[.][0-255]*[.][0-255]*[.][0-255]*") ; 
     Matcher m = p.matcher("000.12.12.034"); 
     System.out.println(m.find()); 
    } 
} 

o/p- wahre

import java.util.regex.Matcher; 
import java.util.regex.Pattern; 
import java.util.Scanner; 
class HelloWorld 
    { 

    public static void main(String s[]) 
     { 
     String pattern = "[0-255]*[.][0-255]*[.][0-255]*[.][0-255]*"; 
     String ip = "000.12.12.034"; 
     System.out.println(ip.matches(pattern)); 
    } 
} 

o/p - falsch

Was ist der Unterschied zwischen Matches und Matcher?

+2

verwenden Was sagen ihre jeweiligen Javadocs? –

+0

Ich verstehe Ihren Standpunkt nicht. – umesh

+0

Wenn Sie sich die Mühe machen, die Dokumentation für diese beiden Methoden zu lesen, was haben Sie gefunden? Was haben sie gesagt, war anders? Was hast du über diese Unterschiede nicht verstanden? –

Antwort

1

1) Matcher.find() versucht, das Muster innerhalb der Zeichenfolge zu finden, während String.matches(pattern) versucht, das Muster mit der gesamten Zeichenfolge übereinzustimmen.

2) Ihre Regex ist falsch. Sie sollten (([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.){3}([01]?\\d\\d?|2[0-4]\\d|25[0-5])

Verwandte Themen