嘿所有,我是Regex的新手,我在这里阅读了几个类似于我正在寻找的问题,但我仍然无法绕过它。
这是用于语法高亮显示,并且我希望以XALL的方式执行,其中属性(在= subject =中的=之前的单词是红色,等于仍然是等于,然后等于之后的数据是不同的颜色。
我知道我可以只使用Find作为属性,因为那些是已知的字符串,但是如何在=(数据)之后匹配字符串才能对其进行着色?因为它可能很重要,我必须处理的格式是“attribute = data”,所以当检测到空格时数据结束
谢谢!
修改
我想稍微澄清一下:
所以这里是消息的一部分,paratheisis中的颜色不是消息的一部分,只是我想要的颜色:“subject(红色)= somedata(蓝色),message(红色)= {DATA (红色)=“somedata”(蓝色)HEADER(红色)=“等我想看着它,说它总是以空白结束是不安全的。我认为它应该以非字母字符结尾。
我尝试使用
string pattern = "\\s(\\S+)=(\\S+)\\s";
这似乎有点工作,但是它将“=”与值相同(我希望“=”保持黑色)并且由于某种原因它只抓住了一些(但它们是它确实抓住了它的颜色,保存了“=”的东西)
答案 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
}