2016-09-30 6 views
1

私はC#と書簡マージアプリケーションを使用しています。ユーザーはテンプレートを次のように保存します。削除を使用しないマージタグ正規表現

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

などです。 [[-xxxxx-]]プレースホルダの間にカスタムフィールドがたくさんあります。私はそれらをうまくマージしています。しかし、時には彼らはいくつかの場所の所有者に渡すことはありません。私はそれらのものを正規表現を使用して見つけて空の文字列で置き換えたいと思います。

技術的には、私は[[-what ever it is in between-]]を見つけて、あなたが使用することができます[[--]]タグ

+1

プレースホルダにはどのような文字を使用できますか? '-'または'] '文字が現れることはありますか? – Laurel

+0

これは私のプレースホルダー[[-SubscriptionName-]]です。あらかじめ定義されたタグの間には、アルファの数字のみが使用できます。 – Krishna

+0

いいえ、 '[[-SomeName - ]]'は有効です。 – Krishna

答えて

2

と一緒に空の文字列に置き換える正規表現を知りたい:

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

これは怠惰なドットスターと呼ばれ、参照a demo on regex101.com

0

タグ名内部にはダッシュがないので、あなたがこの正規表現を使用することができます。

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

タグ名は、キャプチャグループ明らかに1になり、私は正規表現の文字列の@""タイプを使用することをお勧めします。あなたは、置換文字列を使用したいと思うでしょう

[[--]] 

基本的に正規表現が[[-を見つけ、その後、その後、-]]が見つかっ、非-文字の束をキャプチャします。

関連する問題