0

編集:混乱を解消するために、「見栄えの良い」置換機能を使用しても、これはまだ解決されていません。

簡単に言えば、ファイル入力から正規表現を作成しています。唯一のことは、正規表現が必要な場合のファイル入力は次のようになります。

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 ループを開始することです。

4

2 に答える 2