指定された文字列が行列かどうかを確認するために、正規表現を見つけたいと思います。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]]" のような文字列は正規表現に一致しますが、行列ではありません...
何か助けはありますか?