有用於不容易解決那可是我會開始做一些方法來串你的整個輸入字符串像這樣:
string p(string input, string openSign, string closeSign, ref int sPos, int lOffset = 0, int rOffset = 0)
{
int idxL = input.IndexOf(openSign, sPos);
int idxR = input.IndexOf(closeSign, idxL);
sPos = idxL + 1;
if(idxL != -1 && idxR != -1)
{
int s = idxL - lOffset;
int e = idxR + 1 + rOffset;
return input.Substring(s, e - s);
}
return string.Empty;
}
然後你就可以使用它像這樣:
string input = "ANS680401571E0001(FreeEntry-ControlledExit)01930F0003(InService)019423Gate Interface Controller 173(0XAD)019545G.I.C(1014028) EntryValidator(01.00.14028) ExitValidator(01.00.14028)53";
string build = "";
build = "";
int i = 0;
build += p(input, "(", ")", ref i, 0, 0);
build += p(input, "(", ")", ref i, 4, 0);
build += p(input, "Gate", ")", ref i, 0, 0);
build += p(input, "G.I.C", ")", ref i, 0, 0);
build += p(input, "Entry", ")", ref i, 0, 0);
build += p(input, "Exit", ")", ref i, 0, 0);
這將導致與構建是>>"(FreeEntry-ControlledExit)0003(InService)Gate Interface Controller 173(0XAD)G.I.C(1014028)EntryValidator(01.00.14028)ExitValidator(01.00.14028)"
Online example
這應該是可能的正則表達式,但我沒有,現在想想那個時候。也許我稍後會在沒有足夠的答案時更新我的答案。
什麼邏輯規則指示*刪除了哪些文本?即爲什麼01930F0003成爲0003等等? –
你已經試過了什麼?你怎麼知道應該刪除哪些文本?聽起來像(btw。unsolvable)「給我teh codez」給我。 – Mischa
@MischaBehrend拼寫爲「給我代碼」。 –