Extract part of string using REGEXP

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

 Respuesta aceptada

Stephen23
Stephen23 el 6 de Nov. de 2018
Editada: Stephen23 el 6 de Nov. de 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')

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 6 de Nov. de 2018

Comentada:

el 6 de Nov. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by