正則表達式是最快捷的方式。取決於複雜性,它也可能是計算量最大的。
這似乎是你需要什麼(我沒那麼好,所以有可能是更好的方式來做到這一點):
^\d{1,3}:\w{1,9}\((true|false)(;true|;false)*\)\[\d(,[\d])*\]$
說明
\d{1,3}
1至3數字
:
後跟冒號
\w{1,9}
後跟一個1-9字符字母數字串,
\((true|false)(;true|;false)*\)
後跟包含括號「真」或「假」,隨後通過任何數量的「真」或「假」 ,
\[\d(,[\d])*\]
後面跟着另一組包含數字的括號,後面跟着任意數量的逗號+數字。
在字符串的開頭和結尾處的^和$表示字符串的開始和結尾,這是重要的,因爲我們試圖驗證整個字符串與格式匹配。
代碼示例
var input = "24:Something(true;false;true)[0,1,0]";
var regex = new System.Text.RegularExpressions.Regex(@"^\d{1,3}:.{1,9}\(.*\)\[\d(,[\d])*\]$");
bool isFormattedCorrectly = regex.IsMatch(input);
信用@伊恩·尼爾森
爲了檢查一切後:我現在有兩個拆分成字符串。 :之後的整個部分存儲在一個字符串中,這將更容易檢查。 –
你想在()中做什麼?真/假statemets由「,」分隔? –