表达式中忽略字符的Matlab Regexp-Lookbacking



我有一个文件列表,格式如下,与文件名中定义的其他文件类型混合。如果按特定文本进行,我想提取索引号。问题是,正在进行的文本包含可变字符('ignored_123456'(fileType是一个特定的字符串,用于标识我要查找的文件类型。如果有帮助的话,要忽略的可变文本可能是固定长度的。

示例:

testString = 'fileType-ignored_123456_deck-0001_index-0005.ext';

我想过滤包括特定"fileType"one_answers"deck-0001"的文件名,然后提取索引号"0005">

我试图在表达式中使用"通配符":

filePattern = '(?<=fileType.*deck-0001_index-)d+';
fileIndex = str2double(regexp(testString,filePattern,'match','once'));

我也试过:

filePattern = 'fileType[a-zA-Z0-9-_](?<=deck-0001_index-)d+';

和:

filePattern = '(?<=fileType[a-zA-Z0-9-_]deck-0001_index-)d+';

有什么建议吗?理想情况下,我希望将其作为一个单行表达式传递到现有函数中,但如果没有简单的解决方案,可以进行更新。

您可以在正则表达式中使用捕获组,并使用regexptokens选项集:

testString = 'fileType-ignored_123456_deck-0001_index-0005.ext';
tokens = regexp(testString, 'fileType.*deck-0001_index-(d+)', 'tokens','once');
tokens{1,1}

输出:

0005

相关内容

  • 没有找到相关文章

最新更新