我有這樣的測試代碼:如何調試這個正則表達式拼圖?
string triggerPoint = "<TP DDI=\"\" DQ=\"Y\" EDN=\"141040\" NE=\"141049\" NSU=\"141049\" OOH=\"141049\" QZ=\"1007\" QDN=\"141050\" QF=\"141049\" QT=\"M\" RC=\"141049\" RC2=\"\" TWE=\"141049\"/>";
string pattern = "(?<=QZ=\").*?(?=\"\\s)";
var match = Regex.Match(triggerPoint, pattern);
string queueID = match.Groups[0].Value;
Assert.AreEqual("1007", queueID);
其中一期工程,但下面的代碼不會:
string triggerPoint = "<TP DDI=\"\" DQ=\"Y\" EDN=\"141040\" NE=\"141049\" NSU=\"141049\" OOH=\"141049\" Q=\"1007\" QDN=\"141050\" QF=\"141049\" QT=\"M\" RC=\"141049\" RC2=\"\" TWE=\"141049\"/>";
string pattern = "(?<=Q=\").*?(?=\"\\s)";
var match = Regex.Match(triggerPoint, pattern);
string queueID = match.Groups[0].Value;
Assert.AreEqual("1007", queueID);
我所做的是從QZ在triggerPoint串並刪除在Z模式。但是,現在不是返回1007的隊列ID,而是返回「Y」。
第二個片段是我真正需要的工作。請有人能告訴我什麼是錯的?
'DQ = \「Y \''這是否給你一個線索?嘗試'string pattern =「(?<= \\ bQ = \」)。*?(?= \「\\ s)」;' – ClasG
這是某種XML,爲什麼不使用XML解析器? –