1
我一直花費太多時間試圖提取這個。我有以下消息,我想在參數前提取消息「data {{.....}}」的數據部分。我不能依賴消息的順序,所以參數結果和命令可以在消息中以任何順序看到。具有挑戰性的正則表達式與匹配方括號
invokeid 3 data {{GainID|Value(dB)} {0|0} {1|18} {2|17} {3|-1} {4|-255} {5|0} {6|12} {7|11} {8|10} {9|9} {10|8} {11|7} {12|6} {13|5} {14|4} {15|3} {16|2} {17|1} {18|0} {19|-1} {20|-2} {21|-3} {22|-4} {23|-5} {24|-6} {25|-7} {26|-8} {27|-9} {28|-10} {29|-11} {30|-12} {31|-13} {32|-14} {33|-15} {34|-16} {35|-17} {36|-18} {37|-19} {38|-20} {39|-21} {40|-22} {41|-23} {42|-24} {43|-25} {44|-26} {45|-27} {46|-28} {47|0}} arguments {{ DisplayGain -1 }} result 0 command OAMPCMD IPaddress 0.0.0.0
這是要我要解析
data {{GainID|Value(dB)} {0|0} {1|18} {2|17} {3|-1} {4|-255} {5|0} {6|12} {7|11} {8|10} {9|9} {10|8} {11|7} {12|6} {13|5} {14|4} {15|3} {16|2} {17|1} {18|0} {19|-1} {20|-2} {21|-3} {22|-4} {23|-5} {24|-6} {25|-7} {26|-8} {27|-9} {28|-10} {29|-11} {30|-12} {31|-13} {32|-14} {33|-15} {34|-16} {35|-17} {36|-18} {37|-19} {38|-20} {39|-21} {40|-22} {41|-23} {42|-24} {43|-25} {44|-26} {45|-27} {46|-28} {47|0}}
而且它用下面的代碼完成:
string ret = String.Empty;
Regex regEx = new Regex("data {{.*}}");
Match regExMatch = regEx.Match(iqMessage);
if (!regExMatch.Success)
throw new IqScriptControlMessageParseException(String.Format("Could not find {0}.", DATA));
ret = regExMatch.Value.Substring(DATA.Length).Trim();
我是不是能夠成功構建工程的幫助下,正則表達式將不勝感激。我將手動,如果你明白我的意思了提取碼...
感謝
這仍然可能無法匹配您所依賴的數據。查看平衡組來解決這個問題。 (請參閱:http://blogs.msdn.com/b/bclteam/archive/2005/03/15/396452.aspx) – jessehouwing 2012-02-24 17:21:27