У меня есть строка, на самом деле это имя файла каталога.extract substring с регулярным выражением
str='\\198.168.0.10\share\ccdfiles\UA-midd3-files\UA0001A_15_Jun_2014_08.17.49\Midd3\y12m05d25h03m16.midd3'
Мне нужно извлечь целевой подстроку 'UA0001A'
с MATLAB (ну я хотел бы думать, все инструменты должны иметь такой же синтаксис). Не обязательно быть точным 'UA0001A'
, это произвольная комбинация букв и цифр. Чтобы сделать его более общим, я хотел бы думать, подстрока (или слово), должна удовлетворять
это алфавит номер Словосочетание
не может быть чистым алфавит слова или чистый номер слово
не может включать в себя
'midd'
или'midd3'
или'Midd3'
или'MIDD3'
и т.д., поэтому может использовать метод случая ресурсоемких исключить слово начинается с'midd'
не может включать в себя
'y[0-9]{2,4}m[0-9]{1,2}d[0-9]{1,2}\w*'
Как написать регулярное выражение, чтобы найти целевую подстроку?
Заранее благодарен!
является подстрока всегда ограничена "\" и "_"? это сделало бы вещи намного проще. –
Я хотел бы думать, что он должен быть отделен символом non (алфавит или число), таким как «\», «.», «», «-», «_» и т. д., который может встречаются в имени файла каталога. –
Попробуйте ['regexp (s, '(? I) \\ (?! [^ \ W _] * (midd | y \ d + m \ d +)) (? = [^ \ W _] * \ d) (? = [^ \ W_] * [a-zA-Z]) ([^ \ W_] +) ',' tokens '); '] (http://ideone.com/hBAVpz) –