0
我有以下工作模式:如何添加新的命名組?
String pattern = @"<(?<field>[^/>]+)>(?<data>.*)</\k<field>>";
String tcSQML = "<Pri_Key1>62</Pri_Key1><First1>SAM</First1><Last1>SPADE</Last1> <GstNo1></GstNo1><Pri_Key2>63</Pri_Key2><First2>TONY</First2><Last2>TUNE</Last2><GstNo2></GstNo2><Pri_Key3>64</Pri_Key3><First3>FRANK</First3><Last3>FAST</Last3><GstNo3></GstNo3><Pri_Key4>65</Pri_Key4><First4>BILLIE</First4><Last4>BLADES</Last4><GstNo4></GstNo4>";
MatchCollection matches = Regex.Matches(tcSQML, pattern, RegexOptions.Singleline);
foreach (Match m in matches)
{
Console.WriteLine(m.Groups["field"].ToString());
Console.WriteLine(m.Groups["number"].ToString());
}
我要的是能夠在後場也可拍攝數量。例如。在pri_key1 pri_key應該是字段,1應該是數字。我無法弄清楚如何將這個新的數字組引入這種模式。我嘗試了一些變化,沒有任何作品。我對RegEx不太好,所以幫助和解釋是值得讚賞的。
謝謝,這很快,它的作品!我在LinqPad進行測試。 – Naomi
如果字段標籤已知,如何更改此模式?假設這是一個新字符串 「 62 Del_Pri_Key1> 63 Del_Pri_Key2>」; 因此,我的標籤是Del_Pri_Key –
Naomi
只需刪除'(? [^ 0-9 />] +)'並將其替換爲已知的標籤名稱。您還必須使用標籤名稱替換'\ k '。 –
fehnomenal