Hallo Ich habe den folgenden Text:Regular Expression Programm
SMWABCCA
ABCCAEZZRHM
NABCCAYJG
XABCCA
ABCCADK
ABCCASKIYRH
ABCCAKY
PQABCCAK
ABCCAKQ
Diese Methode nimmt einen regulären Ausdruck in out durch den Benutzer und sollte aus den Strings drucken es gilt aber scheint etwas ganz anderes zu drucken:
private void matchIt(String regex) {
Pattern p = Pattern.compile(regex);
Matcher m = null;
boolean found = false;
for(int i = 0; i < data.length; i++){
m = p.matcher(data[i]);
if(m.find()){
out.println(data[i]);
found = true;
}
}
if(!found){
out.println("Pattern Not Found");
}
}
Wenn die Eingabe von „[C],
EDIT:. Leider habe ich den falschen Ausgang ausgedruckt Hier ist die aktuelle Ausgabe:
SMWABCCA
ABCCAEZZRHM
NABCCAYJG
XABCCA
ABCCADK
ABCCASKIYRH
ABCCAKY
PQABCCAK
ABCCAKQ
SMWABCCA
ABCCAEZZRHM
NABCCAYJG
XABCCA
ABCCADK
ABCCASKIYRH
ABCCAKY
PQABCCAK
ABCCAKP
Irgendwelche Ideen warum? Ich glaube, ich bin mit m.find() nicht richtig ...
EDIT: Was ist der reguläre Ausdruck wäre für alle Strings finden, die mit P beenden:
Ich versuchte.
[* P] [\ W]
Was ich interpretiere zu sein - Alles bis ein P gefolgt von Nicht-Wort-Zeichen..aber es funktioniert nicht.
Die Ausgabe ist korrekt. Das sind alle Zeichenfolgen, die ein 'C' enthalten. – OrangeDog
Was ist Ihre erwartete Ausgabe? –
Können Sie zeigen, wie 'matchIt' aufgerufen wird? –