C# 正则表达式似乎不起作用

C# 正则表达式似乎不起作用,c#,regex,winforms,C#,Regex,Winforms,我的绳子有问题。我不知道它怎么了。我只是想让它在RTB中改变颜色。每当我在RTB中键入“accesskey=”或“data bla=”(不带引号),代码的颜色仍然是黑色 我的代码: private void richTextBox1_TextChanged(object sender, EventArgs e) { string attributes = @"\b(accesskey=|\data\-.+?\=)\b"; MatchCollection attributeMa

我的绳子有问题。我不知道它怎么了。我只是想让它在RTB中改变颜色。每当我在RTB中键入“accesskey=”或“data bla=”(不带引号),代码的颜色仍然是黑色

我的代码:

private void richTextBox1_TextChanged(object sender, EventArgs e)
{
     string attributes = @"\b(accesskey=|\data\-.+?\=)\b";
     MatchCollection attributeMatches = Regex.Matches(richTextBox1.Text, attributes);

     foreach (Match m in attributeMatches)
     {
         richTextBox1.SelectionStart = m.Index;
         richTextBox1.SelectionLength = m.Length;
         richTextBox1.SelectionColor = Color.Red;
     }
根据
\b
的说法,这是一个退格字符,我很怀疑你会在你的文本中找到它。因此,您的正则表达式永远不会匹配任何内容


如果要匹配空白,请使用
\s

是否尝试过调试?这与字符串有何关系?也许正则表达式标题更适合您的问题您确定正则表达式匹配任何内容吗?您是否尝试过在没有正则表达式匹配的情况下查看选择是否适用于任意位置?如果是,那么检查你的正则表达式。@BartoszKP我做了。没有发现错误。我想我的绳子有点问题。谢谢你的回复,先生,但它不起作用。当我尝试删除字符串中的等号时,一切正常。这就是为什么我认为我的字符串有问题,或者我需要添加\?谢谢Panagiotis Kanavos!阅读你链接的页面。问题就跟你说的一样。