Objective-C/Giac — Регулярное выражение матрицы

Я хочу найти регулярное выражение, чтобы проверить, является ли заданная строка матрицей. Матрица в библиотеке Giac определяется как

[[1,2,3],[4,5,6],[7,8,9]]

Начинается с "[", заканчивается "]" и каждая строка (вектор) разделяется знаком "," Векторы определяются аналогичным образом: [1,2,3] Таким образом, матрица подобна вектору векторов.

Я создал регулярное выражение

NSString *pattern = @"\\[(\\[-?([0123456789]+(\\.[0123456789]+)?,)+-?[0123456789]+(\\.[0123456789]+)?])+,\\[-?([0123456789]+(\\.[0123456789]+)?,)+-?[0123456789]+(\\.[0123456789]+)?]]";

но я не могу найти, как проверить, что каждый вектор (строка) имеет одинаковое количество элементов...

Например, строка вида "[[1,2],[3,4,5],[6,7,8,9,0]]" соответствует регулярному выражению, но не является матрицей...

Любая помощь?


person Spyros Ch    schedule 28.06.2012    source источник


Ответы (1)


Как мне сказал мой профессор, это невозможно сделать, потому что это НЕ обычный язык, поэтому его нельзя описать регулярным выражением...

person Spyros Ch    schedule 28.06.2012