find string pattern in strings ( 'ab*d' in 'abcd')

11 visualizaciones (últimos 30 días)
Jannis Maq
Jannis Maq el 2 de Jun. de 2016
Comentada: Jannis Maq el 3 de Jun. de 2016
Hello,
I want to check if there is a string pattern within a string. The pattern may look like this: 'ab*d', where * could be one or more charakters or none. So if the pattern would be 'abQWEd' or 'abd' I still want to have a positive feedback. Do you know how to do this?
Thanks!

Respuesta aceptada

Elias Gule
Elias Gule el 2 de Jun. de 2016
try this:
pattern = 'ab.*d'; %%Pattern to match
textstr = 'sqthabVUYd'; %%Input string
match = regexp(textstr,pattern,'match');
this will match 'abVUYd' in the input string.
  2 comentarios
Jannis Maq
Jannis Maq el 2 de Jun. de 2016
Perfect, exactly what I was looking for! Thank you very much.
Jannis Maq
Jannis Maq el 2 de Jun. de 2016
Ah, I was too fast. Is there a way to make ".*" not include all charakters? If there is a "n" or a "N" it shall not work. Do you also know how to solve this?

Iniciar sesión para comentar.

Más respuestas (1)

Elias Gule
Elias Gule el 3 de Jun. de 2016
Editada: Elias Gule el 3 de Jun. de 2016
I presume that you want it to work for all patterns 'ab.*d' that don't contain the letter "n" or "N", such that "abCDnMMd" does not produce a valid match while "abCDMMdn" does. If that's the case then, try this pattern:
pattern = 'ab((\W*[a-mA-Mo-zO-Z0-9]*\W*)*)d'; %%Pattern to match
*Note:
\W* => zero or more non-word characters
[a-mA-Mo-zO-Z]* => a group of zero or more upper or lowercase letters of the alphabet excluding "n" or "N".
  1 comentario
Jannis Maq
Jannis Maq el 3 de Jun. de 2016
Thanks for your reply. Your presumption is right!
But the code doesn't work exactly how I want.
test='((\W*[a-mA-Mo-zO-Z0-9]*\W*)*)6';
regexp(test,'n6','match')
ans =
{} %%Expected answer
regexp(test,'6','match')
ans =
'6' %%Expected answer
regexp(test,'ABC6','match')
ans =
{} %%Not expected :(
But when I put the inputs this way
regexp('ABC6',test,'match')
ans =
'ABC6' %Expected answer
%%But then the problem is:
regexp('n6',test,'match')
ans =
'6' % Not expected, because of the 'n'

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by