【发布时间】:2017-03-29 17:59:11
【问题描述】:
我正在尝试在 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]。
谁能帮我弄清楚我做错了什么?
【问题讨论】:
-
如果您只需要括号内的数字,请尝试
pat = '\d+(?=[^]]*])';。或pat = '\[[\d,]+]'匹配括号中的数字和逗号。 -
它给了我:ans = '4' ans = '3'
-
好吧,
'\[[\d,]+]'产生{ [1,1] = [1,2,3,5] [1,2] = [11,22,33,44] [1,3] = [23,12,12,33] } -
pat = '[[\d,]+]' 工作谢谢,但我不知道为什么 ([\d,\d,\d,\d]) 不起作用?