我有一些输出到 RichTextBox(可能很多或很少,它的搜索结果)并且想应用一些自定义颜色编码。决定用 Regex 来做,虽然它可以工作,但对于 300 个结果来说似乎很慢(~20 秒)。
输出始终采用相同的格式:
Attribute1=Value1 Attribute2=(Value2) Attribute3="String value 3" Attribute4=
等等。所以,我有 4 种情况: stuff=stuff, stuff=(stuff) stuff="string of stuff" 和 stuff=
以下正则表达式可以正常工作(匹配它应该匹配的所有内容),但速度很慢:
(\S+)=("(?:[^"]|(?<open>")|(?<-open>"))+(?(open)(?!))")|(\S+)=(\((?:[^()]|(?<open>\()|(?<-open>\)))+(?(open)(?!))\))|(\S+)=(\S+)|(\S+)=\s
你们有没有看到什么特别让它减慢了速度?我敢肯定你会说,第一部分匹配引号,第二部分匹配括号,等等。
更新 开个玩笑,并没有完全返回我想要的......这个:
Attribute1=Value1 Attribute2=(Value2) Attribute3="String value 3" Attribute4= Attribute5="Another string"
返回这个:
5: Attribute1
6: Value1
3: Attribute2
4: (Value2)
1: Attribute3
2: "String value 3" Attribute4= Attribute5="Another string"
看起来引号一直匹配到第二个字符串,而不是单独考虑它们。