假设我有字符串
Newton = 'kg*m/s^2'
我需要它是:
NewtonMupad = 'unit::kg*unit::m/unit::s^2'
是否有一种简单的方法来检测每个物理单元并将 unit::
附加到它? 可以假设每个单元都由 /< 分隔
、*
或指数 ^2
或 ^3
。
现在我使用了几个正则表达式,比如
x = regexp(Newton ,'*','split')
y = regexp(Newton ,'/','split')
z = regexp(Newton ,'^','split')
而且我能够通过循环创建我需要的字符串。但我想知道是否有使用 Matlab 的更简单、更快速的解决方案?
最佳答案
您可以使用 regexprep
:
>> Newton = 'kg*m/s^2'
>> regexprep(Newton,'(([a-zA-Z]+)(*|/|\^|$))', 'unit::$1')
ans =
unit::kg*unit::m/unit::s^2
关于regex - 将字符串附加到由一组符号分隔的每组子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31654138/