ループは必要ありません。.
すべての右角かっこを一致させたいと考えていますが、最後の角かっこと、ドット ( ) 区切り記号の直前にある角かっこを除きます。右角かっこの後に単一の文字が続くことを要求し、それがドット以外の文字でなければならないことを指定するだけです。これを言う適切な .NET の方法についてはわかりませんが、一致パターンの括弧内のものへの後方参照である whereに一致さ]([^\.])
せて置き換えたいと考えています。入力の最後に空白があると予想される場合は、最初に空白を削除することをお勧めします。]]$1
$1
]
ここでテストできます: http://www.regular-expressions.info/javascriptexample.html
編集 1:上記のテスターを使用して検証済み: http://imgur.com/a/VfR7W
EDIT 2:検証済みsed
(実際のコンピューターにアクセスするために必要):
~ $ echo "
[dim[e]nsion].[this] [member] name]
[dim[en]sion n[a]me ].[this [member] name]
[[dimension] name].[this member [name]]
" > input.txt
~ $ cat input.txt
[dim[e]nsion].[this] [member] name]
[dim[en]sion n[a]me ].[this [member] name]
[[dimension] name].[this member [name]]
~ $ sed 's/]\([^\\.]\)/]]\1/g' input.txt
[dim[e]]nsion].[this]] [member]] name]
[dim[en]]sion n[a]]me ].[this [member]] name]
[[dimension]] name].[this member [name]]]
~ $
編集 3:最初の回答では、一致パターンは、それがリテラルのドット文字であることを示すためにエスケープされ]([^\.])
たドット ( ) を使用して指定されます。.
言語によっては、一致する他の文字をエスケープする必要がある場合があります。