使用matlab regexp精确匹配字符串的各个部分

uubf1zoe  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(170)

这是示例字符串“How to Do FFT in MatLab YouTube MatLab 4分42秒2022年4月28日”。如何使用matlab regexp找到字符串中具有xx分钟,yy秒的部分,并提取之前的字符串?
到目前为止,我已经尝试过regexp(字符串,‘[1234567890]’,‘Start’),它工作得很好,直到matlab函数名中有一个数字。因此,我想精确匹配分钟,秒部分,并在此之前提取字符串

bwntbbo3

bwntbbo31#

如果运行以下命令:

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'

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

  • \w匹配任何“Word字符
  • *匹配零个或多个前面的字符或组
  • ( )两个组操作(就像圆括号通常做的那样)并触发“标记”概念,某种程度上定义了输出。
  • [ ]定义分组项目

相关问题