Regex: bin zu doof dafür

28/04/2010 - 15:07 von Armin Zingler | Report spam
Hi,

nachdem ich die Regex-Doku jetzt x-fach rauf und runter
durchsucht habe und immer noch keinen Einstiegspunkt gefunden habe,
frage ich mal hier:

Ich habe Text nach folgendem Format: (ist noch kein regulàrer Ausdruck)

"*" def "*" [jkl "*" [*]]"

Wobei "*" Platzhalter für igendeinen Text sind und "[]" optionaler
Text ist.

Beispiel:

"abc" def "ghi" [jkl "mno" [pqr]]"

Ich möchte in diesem Beispiel die Texte
- abc
- ghi
- mno
- pqr

extrahieren. Welchen reg. Ausdruck muss ich dafür verwenden?
Bei der Doku fehlt mir der Einstieg. So etwas wie "Platzhalter" finde
ich nicht. Nur irgendwelche Begriffe wie "Ersetzungen" und "Quantifizierer",
die nicht wirklich erklàrt werden. Brauche ich die? Wonach muss
ich suchen? Ich habe keine Ahnung.

Armin
 

Lesen sie die antworten

#1 Tobias Burger
28/04/2010 - 15:52 | Warnen spam
Hallo Armin,

bin mir jetzt nicht sicher, ob ich die Vorgaben richtig Verstanden habe:
* Text darf nur aus alphanumerischen Zeichen bestehen
* Text muss in doppelten Anführungszeichen oder in eckigen Klammern stehen

Dann könnte das Regex-Muster so aussehen:
["\[](\w+)["\]]

Ich kann dir für das Prototyping von Regex-Ausdrücken einen Regex-Editor
wàrmstens empfehlen. Damit kannst du rasch Patterns auf ihre Gültigkeit
überprüfen und erhàltst Hilfe zu deinem Muster...
Ich verwende dafür beispielsweise Expresso (http://www.ultrapico.com/).
Das Erstellen der Regex-Instanz kann so ein Werkzeug auch gleich übernehmen
(wenn nötig kann es die Expression sogar in eine Assembly kompilieren):
Regex regex = new Regex("[\"\\[](\\w+)[\"\\]]");

MfG
Tobias

"Armin Zingler" schrieb im Newsbeitrag
news:
Hi,

nachdem ich die Regex-Doku jetzt x-fach rauf und runter
durchsucht habe und immer noch keinen Einstiegspunkt gefunden habe,
frage ich mal hier:

Ich habe Text nach folgendem Format: (ist noch kein regulàrer Ausdruck)

"*" def "*" [jkl "*" [*]]"

Wobei "*" Platzhalter für igendeinen Text sind und "[]" optionaler
Text ist.

Beispiel:

"abc" def "ghi" [jkl "mno" [pqr]]"

Ich möchte in diesem Beispiel die Texte
- abc
- ghi
- mno
- pqr

extrahieren. Welchen reg. Ausdruck muss ich dafür verwenden?
Bei der Doku fehlt mir der Einstieg. So etwas wie "Platzhalter" finde
ich nicht. Nur irgendwelche Begriffe wie "Ersetzungen" und
"Quantifizierer",
die nicht wirklich erklàrt werden. Brauche ich die? Wonach muss
ich suchen? Ich habe keine Ahnung.

Armin

Ähnliche fragen