我有一些輸出到RichTextBox(可能很多或小塊,其搜索結果),並且想要應用一些自定義顏色編碼。決定用正則表達式來處理它,並且它可以工作,但對於300個結果來說,它似乎很慢(約20秒)。.Net正則表達式問題
輸出始終在相同的格式:
Attribute1=Value1 Attribute2=(Value2) Attribute3="String value 3" Attribute4=
等。所以,我有4個情況:東西=東西,東西=(東西)的東西=和東西「的東西串」 =
下面的正則表達式工作得很好(匹配它應該一切),但速度很慢:
(\S+)=("(?:[^"]|(?<open>")|(?<-open>"))+(?(open)(?!))")|(\S+)=(\((?:[^()]|(?<open>\()|(?<-open>\)))+(?(open)(?!))\))|(\S+)=(\S+)|(\S+)=\s
你們看到有什麼特別的東西會減慢速度嗎?正如我可以肯定的那樣,第一部分與引號匹配,第二部分與括號等相匹配。
UPDATE 開玩笑的,不正是我想要的回報......這:
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"
貌似報價一路之隔匹配到第二個字符串,而不是單獨考慮它們。
爲'ATTR =(VAL)'的情況下,可以'val'包含括號本身? – 2013-05-13 19:28:44
@CasimiretHippolyte是的,你可以有像attr1 = value(0.0) – Hershizer33 2013-05-13 19:58:50