Laden...

Regex und BBCode

Erstellt von Basster vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.501 Views
B
Basster Themenstarter:in
44 Beiträge seit 2004
vor 18 Jahren
Regex und BBCode

Hi und Hallo,

ich habe mich schon ein Weilchen durchs Forum gesucht, aber nix gefunden, mir dem ich was anfangen kann... oder ich bin einfach zu blöd für Regex 😉

Ich habe es jetzt schon hinbekommen meinen String - der [Tags] enthält - so zu durchsuchen, dass ich alles zwischen den Tags bekomme, jedoch möchte ich nur den Teil zwischen den Tags haben. Wie kann ich das finden?

Mein bisheriger Regex Pattern sieht so aus:

@"(\\[tag\\].*\\[/tag\\])"

Ich möchte aber gerne den Text zwischen [tag] und [/tag].

*verzweifel*

4.506 Beiträge seit 2004
vor 18 Jahren

Hallo Basster!

Vielleicht so:


@"(tag]*[/tag)"

Bin aber auch nicht der RegEx-Experte.

Ciao
Norman-Timo

A: “Wie ist denn das Wetter bei euch?”
B: “Caps Lock.”
A: “Hä?”
B: “Na ja, Shift ohne Ende!”

32 Beiträge seit 2005
vor 18 Jahren

Nimm so was:

\[tag\](.*?)\[/tag\]

Gruß
Uwe

32 Beiträge seit 2005
vor 18 Jahren

Mist, die Baslashs vor den eckigen Klammern wurden hier gefressen. Diese waren natürlich korrekt bei Dir!

B
Basster Themenstarter:in
44 Beiträge seit 2004
vor 18 Jahren

Hab ja auch doppelt escaped 😉

Danke erstmal!

[Edit]Funzt leider nicht, ich bekomme immer noch den kompletten String inkl. Tags...[/Edit]

T
73 Beiträge seit 2004
vor 18 Jahren

Hallo an alle!

es gibt ein sehr brauchbares tool zum testen von .net REGEXen incl. code generator für c# und vb.

The Regulator

viel spass,

-ts

p.s. hier der code ausm regulator


    public class RegularExpression
    {
        
        private void Test()
        {
            string regex = "\\\\[tag\\\\](.*?)\\\\[/tag\\\\]";
            System.Text.RegularExpressions.RegexOptions options = ((System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace | System.Text.RegularExpressions.RegexOptions.Multiline) 
                        | System.Text.RegularExpressions.RegexOptions.IgnoreCase);
            System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(regex, options);
        }
    }



32 Beiträge seit 2005
vor 18 Jahren

Genau Regulator. Darin habe ich meine RX auch getestet.

Vermutlich liest Du die falsche Eigenschaft aus dem Match-Ergebnis-Objekt der Match()-Methode aus. Da gibt es einige Eigenschaften, schau Dir mal die Doku genau an 🙂

49.485 Beiträge seit 2005
vor 18 Jahren

Hallo zusammen,

[tag](.*?)[/tag] tut zwar, was Basster gefragt hat, aber damit handelt man sich Probleme ein, deren Lösungen in Parser für BBcode? angesprochen werden.

herbivore