正则表达式语法突出显示问题

时间:2011-03-10 15:21:03

标签: c# regex

嘿所有,我是Regex的新手,我在这里阅读了几个类似于我正在寻找的问题,但我仍然无法绕过它。

这是用于语法高亮显示,并且我希望以XALL的方式执行,其中属性(在= subject =中的=之前的单词是红色,等于仍然是等于,然后等于之后的数据是不同的颜色。

我知道我可以只使用Find作为属性,因为那些是已知的字符串,但是如何在=(数据)之后匹配字符串才能对其进行着色?因为它可能很重要,我必须处理的格式是“attribute = data”,所以当检测到空格时数据结束

谢谢!

修改

我想稍微澄清一下:

所以这里是消息的一部分,paratheisis中的颜色不是消息的一部分,只是我想要的颜色:“subject(红色)= somedata(蓝色),message(红色)= {DATA (红色)=“somedata”(蓝色)HEADER(红色)=“等我想看着它,说它总是以空白结束是不安全的。我认为它应该以非字母字符结尾。

我尝试使用

string pattern = "\\s(\\S+)=(\\S+)\\s";

这似乎有点工作,但是它将“=”与值相同(我希望“=”保持黑色)并且由于某种原因它只抓住了一些(但它们是它确实抓住了它的颜色,保存了“=”的东西)

1 个答案:

答案 0 :(得分:0)

你的表达是

 \s(\S+)\s*="([^"]+)"

看看here

在.NET中使用它:

string pattern = "\\s(\\S+)\\s*=\"([^\"]+)"\";
MatchCollection matches = Regex.Matches(inputString, pattern);
foreach(Match m in matches)
{
    Console.WriteLine(m.Groups[1].Value); // attrib name
    Console.WriteLine(m.Groups[2].Value); // attrib value
}