【问题标题】:Matlab regex: replace comma and one letterMatlab正则表达式:替换逗号和一个字母
【发布时间】:2015-09-03 01:24:00
【问题描述】:

我在 matlab 中有一个这样的字符串。

str='42 21 S'

我怎样才能把它转换成下面的形式?

str='42.21'

我对@9​​87654323@ 的尝试如下:

regexprep(str,'S','');
regexprep(str,' ', '.')

这让我有了这个

str='42.21.'

【问题讨论】:

    标签: regex string matlab


    【解决方案1】:

    这应该可以解决问题,尽管 Matlab 对字符串并不擅长,所以可能有各种方法可以做到这一点,而不仅仅是使用 regexp/regexprep

    regexprep(regexp('42 21 A','\d+\s\d+','match'),'\s','.')
    

    regexp 删除空格和末尾的S,然后regexprep 将空格替换为句点。

    【讨论】:

      【解决方案2】:

      对于简单的替换,您不必使用regexprep。你可以使用更简单的strrep

      str = strrep(str, ' S', '');
      str = strrep(str, ' ', '.');
      

      如果您需要更通用的替换规则,您应该使用 regexprep,例如 David 的回答。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-06
        • 1970-01-01
        相关资源
        最近更新 更多