Substring per Regex auslesen

wSam

Erfahrenes Mitglied
Hallo zusammen

Ich habe einen String nach folgendem Muster: "/kannsichändern/präfixGrossWort"

Jetzt möchte ich per Regex das Präfix auslesen. Dieses Präfix kommt immer nach dem zweiten / und besteht aus 2 klein Buchstaben. Es wird durch den nachfolgenden Grossbuchstaben abgegrenzt.

Wie kann ich dieses Präfix am besten auslesen?

Vielen Dank im Voraus und Gruss
 
Kannst du nicht einfach einen StringTokenizer nehmen?
Ist es wichtig, dass der Grossbuchstabe den Prefix abgrenzt oder kannst du auch die zwei Buchstaben abzählen?
 
Hallo,

versuch es doch mal mit der Methode "Split".

Beispiel:

String sWert = "/kannsichändern/präfixGrossWort";
String[] sErgebnis = null;

sErgebnis = sWert.split("/");
System.out.println("Ergebnis 1 : " +sErgebnis[0]);
System.out.println("Ergebnis 2 : " +sErgebnis[1]);
System.out.println("Ergebnis 3 : " +sErgebnis[2]);

Ausgabe:
Ergebnis 1 :
Ergebnis 2 : kannsichändern
Ergebnis 3 : präfixGrossWort

Aus Ergebnis 3 kannst du dann ggf. noch einen Teil abrufen.

Gruß

Harald
 
Oder so:

String lText = "/kannsichändern/pxGrossWort";
StringTokenizer hacker = new StringTokenizer(lText, "/");

while(hacker.hasMoreTokens()) {
lText = hacker.nextToken();
}
lText = lText.substring(0, 2);

lText ist nun "px".
 
Danke für die Antworten.

Aber ich möchte das Präfix dynamisch auslesen, daher ohne abzuzählen etc.
 
Hallo,

im web wird man jedoch darauf hingewiesen, die Methode split zu nehmen.

Wenn der Delimiter in dem String mehrfach hintereinander vorkommt
klappt die Aufteilung nicht mehr.


Zitat:
StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split method of String or the java.util.regex package instead.

 
Hallo!

Schau mal hier:
Java:
/**
 * 
 */
package de.tutorials;

/**
 * @author Thomas.Darimont
 *
 */
public class RegexExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
        String regex = "/[^/]*/([a-z]{2}).*";
        String prefix = "/kannsichändern/xxGrossWort".replaceAll(regex, "$1");
        System.out.println(prefix);
    }

}

Gruß Tom
 
Zurück