【问题标题】:MATLAB: Using "regexp" for filtering letters and digitsMATLAB:使用“regexp”过滤字母和数字
【发布时间】:2014-11-26 10:42:06
【问题描述】:

这是一个简单的问题,但我无法处理正则表达式,经过几个小时的尝试,我希望你能帮助我。

我编写了一个函数,它扫描字符串并根据输入字符串中的大小写和数字启动特定操作。

首先我通过 textscan 扫描输入,通过 {} 将其转换为向量并提取大小。然后我想在第一列中有案例,在第二列中有数字。

%split String spaces 
Zelle = textscan(trafostr, '%s');
%save in Vector
nZelle = Zelle{1,1};
[z s] = size(nZelle);

%set Startermatrix
nmatrix = eye(3);

for i=1:z;
    nString(i,1) = num2str(nZelle{i,1}, '%f');


nString(i,1) = num2str(nZelle{i,1}, '%f');

【问题讨论】:

  • 你能举一个输入和想要的输出的小例子吗?
  • 当然,输入应该是这样的:tr​​afostr = hu2 hv3 rt45,而输出是一个组合变换矩阵。
  • 您要查找的字符串部分是否始终是两个字母代码? ('hu'、'hv'、'rt' 等)

标签: regex matlab


【解决方案1】:

你想得到这样的东西吗?

trafostr = 'hu2 hv3 rt45';

%split String spaces
Zelle = textscan(trafostr, '%s');
%save in Vector
nZelle = Zelle{1,1};
[z,s] = size(nZelle);

for i=1:z;
    Ouptput{i,1} = nZelle{i}( isletter(nZelle{i}) );
    Ouptput{i,2} = nZelle{i}( ~isletter(nZelle{i}) );
end



Ouptput = 
    'hu'    '2' 
    'hv'    '3' 
    'rt'    '45'

【讨论】:

    猜你喜欢
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 2013-09-28
    相关资源
    最近更新 更多