您可以使用matlab动态正则表达式来定义一个基于先前捕获的令牌的命名令牌吗?

2j4z5cfb  于 2022-11-24  发布在  Matlab
关注(0)|答案(1)|浏览(105)

我想试着解析出一个结构,它使用了一个先前捕获的命名标记,并使用该标记中的名称作为另一个标记的名称。这可能吗?
例如,对于字符串foo:bar,我希望将标记field捕获为foo,将标记foo捕获为bar
我认为它应该看起来像这样:
data = regexp(text,'(?<field>\w+)...((??\?\<$<field>\>[^;]));','names');
但到目前为止我还没有成功。

nzk0hqpo

nzk0hqpo1#

我建议首先使用split拆分字符串

splt_str = split('foo:bar', ':');

然后,使用分隔字符串填充结构体

data.(splt_str{1}) = splt_str{2};

这种方法的核心是,可以通过将字符串作为字段名传递到括号()中来填充结构体。请参见this帮助页面。

相关问题