2015-07-01 13 views
6

Gerade lief ein kleines Problem mit meiner Regex. Ich würde gerne alle Inhalte innerhalb der eckigen Klammer Tags anpassen.Regex, um alle Zeichen und neue Zeilen zu entsprechen?

Hier ist mein regex: /(?:\[.*])(.*)(?:\[\/.*])/

ich es gegen diesen Inhalt leite:

[TITLE]More Things[/TITLE] 
[BODY]This is not working 
still not working 
nope, hasn't magically started working 

I'd like to match double carriage returns[/BODY] 

Es wird nur im Moment der einzige Zeile Tags entsprechen. Jede Hilfe wird geschätzt, danke.

+0

drehen Haben Sie Tags verschachtelt haben? Möchten Sie auch verschachtelte getaggte Texte erhalten? –

+0

Nein, ich werde nie verschachtelte Tags mit diesem System verwenden. – ToXic73

Antwort

2

Wenn Sie auf PHP sind, müssen Sie nur s Modifikator hinzufügen. Außerdem ist es besser, das öffnende Tag einzufangen und es zu verweisen, während das Muster für das schließende Tag geschrieben wird.

/(?:\[([^\]]*)\])(.*?)(?:\[\/\1\])/s 

Wenn Sie Javascript sind, dann müssen Sie müssen jede . in der obigen Regex [\S\s]

DEMO

+0

Ich benutze PHP, aber wenn ich den Modifier s verwende, verschiebt es die Ergebnisse, denke ich? Gibt es unterschiedliche Ergebnisse zurück? – ToXic73

+0

Ich mache 'preg_match_all()' und es scheint nur ein Ergebnis zu liefern. – ToXic73

+0

Überprüfen Sie mein Update .. –

Verwandte Themen