編集:混乱を解消するために、「見栄えの良い」置換機能を使用しても、これはまだ解決されていません。
簡単に言えば、ファイル入力から正規表現を作成しています。唯一のことは、正規表現が必要な場合のファイル入力は次のようになります。
look*
これは、C# の正規表現用語では、次のことを意味します。
look[a-zA-Z]*
そこで、次のコードを使用してそれを実行しようとしました。
static void HighlightPhrase(RichTextBox box, string phrase, Color color)
{
int pos = box.SelectionStart;
MatchCollection myM;
string s = box.Text;
MessageBox.Show(phrase, "PHRASE");
if (phrase.Contains("*"))
{
phrase = phrase.Replace(phrase = phrase.Replace("*", "[a-zA-Z]*");
MessageBox.Show(phrase);
myM = Regex.Matches(s, phrase);
foreach (Match m in myM)
{
MessageBox.Show("I reach here!");
box.SelectionStart = m.Index;
box.SelectionLength = m.Length;
box.SelectionColor = color;
}
box.SelectionStart = pos;
box.SelectionLength = 0;
}
MessageBoxes は無視してください。これらはデバッグ用ですが、残念ながら、[ここに到達しました] ボックスは表示されません。私の全体的な目的は、実際にマッチを成功させて foreach ループを開始することです。