【问题标题】:Exclude Digits from String using Regexp in MATLAB在 MATLAB 中使用正则表达式从字符串中排除数字
【发布时间】:2014-08-27 07:34:24
【问题描述】:

需要从字符串中排除数字并在 MATLAB 中返回字符串元胞数组

e.g str = 'abc76.5_pol0.00_Ev0.3'

output {'abc','pol','Ev'}

字符串不是特定于 'abc' 等的,它可能是一个长字符

【问题讨论】:

  • 字符串中是否也有符号,例如 - 'abc$$76.5_pol0.00_Ev0.3' 也许?
  • 字母和数字之间没有符号
  • 好的,在数字之间或者字符串中的任意位置?
  • 不,只有 '.'这实际上是小数点的表示

标签: regex string matlab extract


【解决方案1】:

使用正则表达式。

str = 'abc76.5_pol0.00_Ev0.3';
C = regexp(str, '[a-zA-Z]*', 'match');

【讨论】:

    【解决方案2】:

    这是我找到的解决方案

    output = regexp(str, '[^a-zA-Z]', 'split');
    output(cellfun(@isempty,output)) = [];
    

    【讨论】:

      【解决方案3】:

      您还可以将strsplitRegularExpression 选项一起使用。

      C = strsplit(str, '[^a-zA-Z]', 'DelimiterType', 'RegularExpression')
      

      【讨论】:

      • 我认为 strsplit 是最近版本的 MATLAB 中添加的一个函数,我使用的是 R2010b,并且该函数不可用
      • 您的解决方案与我的非常相似,但我不明白为什么您在C 末尾得到一个空单元格。
      猜你喜欢
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 2019-08-03
      • 1970-01-01
      • 2012-02-17
      相关资源
      最近更新 更多