2016-09-30 4 views
1

Ich verwende C# und schreiben Seriendruck-Anwendung. Meine Benutzer speichern die Vorlagen wie folgtEntfernen Sie nicht verwendete Merge-Tags Regulärer Ausdruck

Dear [[-UserName-]], 
You have been subscribed for [[-SubscriptionName-]]... 

und so weiter. Es wird viele benutzerdefinierte Felder zwischen [[-xxxxx-]] Platzhalter geben. Ich füge sie gut zusammen. Aber manchmal gehen sie für einige Platzhalter nicht durch. Ich möchte diese Dinge mit regulären Ausdrücken finden und sie durch leere Zeichenfolgen ersetzen.

Technisch, ich möchte den regulären Ausdruck, um herauszufinden, [[-what ever it is in between-]] zu finden und zusammen mit [[--]] Tags

+1

Welche Zeichen sind in den Platzhaltern erlaubt? Können '-' oder'] Zeichen vorkommen? – Laurel

+0

Dies ist mein Platzhalter [[-SubscriptionName-]]. Zwischen diesen vordefinierten Tags sind nur alphanumerische Zeichen zulässig. – Krishna

+0

Nein, aber '[-SomeName -]]' ist gültig. – Krishna

Antwort

2

Sie verwenden, um mit leeren String ersetzen: ein fauler Punkt star Das heißt

\[{2}(-.*?-)\]{2} 
# look for [[-, -]] and anything in between. 

finden a demo on regex101.com.

0

Da es keine Striche in den Tag-Namen sind, können Sie diese Regex verwenden:

\[\[-([^-]+)-\]\] 

Der Tag-Name in Capture-Gruppe 1. Offensichtlich sein wird, empfehle ich die @"" Art der Zeichenfolge für die regex .

Sie die Ersatzzeichenfolge verwenden möchten:

[[--]] 

Wesentlichen die Regex [[- findet, dann eine Reihe von nicht - Zeichen einfängt, dann -]] findet.

Verwandte Themen