Регулярное выражение - самый быстрый способ.В зависимости от сложности он также может быть самым дорогим в вычислительном отношении.
Кажется, это делает то, что вам нужно (я не очень хорош, поэтому могут быть лучшие способы сделать это):
^\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)*\)
, сопровождаемая круглыми скобками, содержащими "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);
Credit @Ян Нельсон