将字符串附加到由一组符号分隔的每个子串组

时间:2015-07-27 13:16:14

标签: regex matlab

想象一下,我有字符串

Newton = 'kg*m/s^2'

我需要它:

NewtonMupad = 'unit::kg*unit::m/unit::s^2'

是否有一种简单的方法来检测每个物理单元并将unit::附加到它?可以假设每个单元都由/,{{1}分隔开来}或指数*^2

现在我使用了几个正则表达式,比如

^3

我能够通过循环创建我需要的字符串。但我想知道使用Matlab是否有更简单,更快速的解决方案?

1 个答案:

答案 0 :(得分:4)

您可以使用regexprep

>> Newton = 'kg*m/s^2'
>> regexprep(Newton,'(([a-zA-Z]+)(*|/|\^|$))', 'unit::$1')

ans = 

unit::kg*unit::m/unit::s^2