Searching for slightly different versions of one string in another string array
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
I am looking for slightly diffeerent versions of a string S in the array A. For example, the string S that I am searching for may look like this:
S='ABC12'
but A may contain various versions of it with various numbers of spaces inbetween the characters:
A={'A BC1 2 ' 'XY T67' 'AB C 12' 'RS  U3 2' 'HIJ87' ' A   B  C1 2'}
Here elements 1, 3 & 6 should all come out as matches, no matter how many spaces between or before/after the characters.  
0 comentarios
Respuesta aceptada
  dpb
      
      
 el 14 de Mayo de 2022
        >> S='ABC12';
>> A(matches(strrep(A,' ',''),S))
ans =
  1×3 cell array
    {'A BC1 2 '}    {'AB C 12'}    {' A   B  C1 2'}
>> 
You can get more exotic with regexp or with the newfangled pattern, but for the problem as described, I'd go for simple-minded.
3 comentarios
  dpb
      
      
 el 15 de Mayo de 2022
				That depends on just what "STRINGn" contains in the real data set.  With a fixed pattern as given, only a minor modification to the above will still work...
>> A={'A BC1 2 STRING1' 'XY T67STRING2' 'AB C 12STRING3' 'RS  U3 2STRING4' 'HIJ87STRING5' ' A   B  C1 2STRING6'};
>> strtrim(extractBefore(A(startsWith(strrep(A,' ',''),S)),'STRING'))
ans =
  1×3 cell array
    {'A BC1 2'}    {'AB C 12'}    {'A   B  C1 2'}
>> 
The assumption of a constant pattern probably won't stand up, so you're probably into a regular expression or using pattern.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Characters and Strings en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!