61 Stimmen

RegEx, um alles zwischen zwei Zeichen auszuwählen?

Ich versuche, eine Regex zu schreiben, die alles zwischen zwei Zeichen auswählt.

Wenn die Regex zum Beispiel auf eine '§' Ich möchte, dass es alles nach der '§' Zeichen, bis zu dem Punkt, an dem der Regex auf ein ';' . Ich habe es mit einem Rückblick und einem Vorausblick versucht, aber das funktioniert nicht wirklich.

So zum Beispiel " § 1-2 bla; " sollte zurückkehren " 1-2 bla" .

Für jede Hilfe wären wir Ihnen dankbar!

72voto

mdma Punkte 55529

Wie wäre es mit

"§([^;]*);"

Die ausgewählten Zeichen zwischen den § y ; sind als Spielgruppe 1 verfügbar.

46voto

Gopi Punkte 9905

Verwenden Sie diese Regex

(?<=§).*?(?=;)

20voto

SilentGhost Punkte 285785

Für einen einfachen Fall sollte dies ausreichen:

§(.*);

Sie muss möglicherweise geändert werden, wenn Sie keine Verschachtelung zulassen wollen:

§(.*?);

11voto

FlyingZipper Punkte 636

Wenn Sie mehrere § haben (Beispiel: char), verwenden Sie : §([^§]*)§

Es ignoriert alles, was zwischen zwei § liegt und nimmt nur das, was zwischen den 2 Sonderzeichen liegt, wenn Sie also etwas wie §What§ kind of §bear§ is best wird ausgegeben: §what§ , §bear§

Was passiert? Zerlegen wir den Ausdruck § then ([^§]*) then §

  1. 1- match § char
  2. 2- match anything but § [^§] 0 oder mehr Mal *
  3. match § char

Ich hoffe, es hilft!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X