我有一个文件列表,格式如下,与文件名中定义的其他文件类型混合。如果按特定文本进行,我想提取索引号。问题是,正在进行的文本包含可变字符('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+';
有什么建议吗?理想情况下,我希望将其作为一个单行表达式传递到现有函数中,但如果没有简单的解决方案,可以进行更新。
您可以在正则表达式中使用捕获组,并使用regexp
和tokens
选项集:
testString = 'fileType-ignored_123456_deck-0001_index-0005.ext';
tokens = regexp(testString, 'fileType.*deck-0001_index-(d+)', 'tokens','once');
tokens{1,1}
输出:
0005