regex - 在 MATLAB 中将元胞元胞数组转换为字符串元胞数组

标签 regex matlab string cell

在字符串元胞数组上使用带有标记的正则表达式我得到了元胞数组。这是一个简化的例子:

S = {'string 1';'string 2';'string 3'};
res = regexp(S,'(\d)','tokens')
res = 

    {1x1 cell}
    {1x1 cell}
    {1x1 cell}
res{2}{1}
ans = 
    '2'

我知道 S 中的每个单元格字符串只有一个匹配项。如何将此输出转换为矢量化形式的字符串单元格数组?

最佳答案

问题比你想象的还要严重。您来自 REGEXP 的输出实际上是元胞数组的元胞数组 元胞数组 的字符串!是的,三个级别!下面使用CELLFUN去掉前两层,只留下一个字符串元胞数组:

cellArrayOfStrings = cellfun(@(c) c{1},res);

但是,您也可以将电话改为 REGEXP去掉一层,然后使用 VERTCAT :

res = regexp(S,'(\d)','tokens','once');  %# Added the 'once' option
cellArrayOfStrings = vertcat(res{:});

关于regex - 在 MATLAB 中将元胞元胞数组转换为字符串元胞数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624744/

相关文章:

matlab - 检查变量是否为 bool 值

javascript - 使用 JavaScript 替换方法保留大小写/大写

R 中的 regexpr 语法

matlab - 为什么我在 MatCont 中收到 "current step too small"错误?

matlab - 当不使用 "end"时,一个 .m 文件中的多个函数是嵌套的还是局部的

C# 字符串格式

PHP 正则表达式 - 1 个或多个整数的值

c# - 正则表达式之间的替换

regex - .Net正则表达式(Regex)

javascript - 使用 javascript/jquery 从字符串中提取 html 元素