(デジタルではなく)郵送用のアプリケーションを作成したい。アイデアは、ユーザーがWordでテンプレートを作成することです(RTFで保存され、すでに.docで諦めています)。テンプレートの例(rtf)は次のとおりです。
「お誕生日おめでとう[ユーザー名]、.....」
[ユーザー名]フィールドを特定のテキストに置き換えるのは簡単です。ただし、私がやりたいのは、「[」で始まり「]」で終わるすべての文字列を効果的に見つけることです。そのため、アプリのユーザーがどのデータベースフィールドをどこに配置するかを選択できるようにすることができます。
これは私がこれまでに得たものです:
System.Windows.Forms.RichTextBox rtBox = new System.Windows.Forms.RichTextBox();
string s = System.IO.File.ReadAllText(path);
Regex regex = new Regex(@"\[.*\] ");
rtBox.Rtf = s;
var Matches = regex.Matches(rtBox.Rtf);
int i = 0;
while(i < Matches.Count) {
MessageBox.Show(Matches[i].ToString());
i++;
}
ただし、このコードは期待どおりに機能しません。2つのパラメーターが1行にある場合(例:「Happybday [FirstName] [LastName]」、正規表現の一致は[* FirstName] [LastName ] *であり、2つに分かれていません。
ありがとう!