This should a fairly straightforward problem. I have a cell array of strings. I want to extract a part of the string with REGEXP. My string looks like the following: str= 'R44821_181026120003i3t001B02f05d1.TIF' or str = R44821_181102140001i3D03f01d1.TIF I want to extract the capital letter from the string (barring the first letter) followed by two numbers such that the output from the above two strings are B02 or D03. I tried the following code :
regexp(fileNames{1}, '(\w+)[A-Z](..)(\D|[^A-Z])', 'tokens', 'once')
But I can't seem to extract the Capital letter associated with the number

 Réponse acceptée

Stephen23
Stephen23 le 6 Nov 2018
Modifié(e) : Stephen23 le 6 Nov 2018
Use a look-around operation to ensure that the previous character was alphanumeric:
>> C = {'R44821_181026120003i3t001B02f05d1.TIF','R44821_181102140001i3D03f01d1.TIF'};
>> D = regexp(C,'(?<=\w)[A-Z]\d{2}','match','once');
>> D{:}
ans = B02
ans = D03
Or a look-around to ensure that it does not match the start of the string:
D = regexp(C,'(?<!^)[A-Z]\d{2}','match','once')

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by