使用MATLAB正则表达式匹配字符串的精确部分



这是示例字符串"如何在MATLAB中进行FFT YouTube MATLAB 4分42秒2022年4月28日";。如何使用MATLAB正则表达式查找字符串中具有xx分yy秒的部分,并在此之前提取字符串?

到目前为止,我已经尝试过regexp(字符串,'[1234567890]','start'(,它运行得很好,直到matlab函数名中有一个数字。所以我想精确匹配分钟、秒部分,并在之前提取字符串

如果运行:

str = "How to Do FFT in MATLAB YouTube MATLAB 4 minutes, 42 seconds Apr 28, 2022";
result_cell = regexp( ...
str, ...
'(w*) [0-9]* minutes, [0-9]* sec', ...
'tokens')
out = result_cell{1}{1};

这是的结果

out =
'MATLAB'

正则表达式本身就是一门艺术。我上面使用的一些功能是:

  • CCD_;文字字符
  • *与前面的字符或组中的零个或多个匹配
  • CCD_ 3二者都对运算进行分组(像括号通常所做的那样(;令牌";概念,有点定义输出
  • [ ]定义分组项目

最新更新