0

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

何か助けはありますか?

4

1 に答える 1

0

私の教授から言われたように、これは正規言語ではないため正規表現で記述できないため、これはできません...

于 2012-06-28T23:57:47.067 に答える