编辑:为了消除混乱,即使使用“更好看”的替换功能,这仍然没有解决。
所以,长话短说,我正在从文件输入创建正则表达式,唯一的事情是,当需要正则表达式时,文件输入将如下所示:
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 循环。