无法在matlab

时间:2017-03-29 17:59:12

标签: regex matlab

我正在尝试在matlab中解析正则表达式。我试图为所有组提取'[]'之间的所有数字。以下是详细信息:

pat = '(\[\d,\d,\d,\d\])';
s1 = 'frame_1:[1,2,3,5],[11,22,33,44],[23,12,12,33],'

[matched_string] = regexp(s1,pat,'match');

>> matched_string{:}

ans =

    '[1,2,3,5]'

我想得到所有方框,即[1,2,3,5],[11,22,33,44]和[23,12,12,33]。

有人可以帮我弄清楚我做错了吗?

1 个答案:

答案 0 :(得分:5)

您的图案仅匹配方括号内的单个数字。要匹配一个或多个,请在每个之后添加+

'(\[\d+,\d+,\d+,\d+\])'

如果你不关心方括号内的格式,只需要在里面用数字和逗号提取方括号,你可以使用更简单的

'\[[\d,]+]'

请注意,正则表达式末尾的]不是特殊字符,因为没有相应的[打开字符类,因此不需要转义它。