Why the regexp returns wrong result?

Hi,
I use who function and '-regexp' to help me sort data that matches my criteria.
dataList = who(subBatchData,'-regexp','^X.*2');
It works well in other data. While in this data, it returns wrong result. And in the same batch, using '^X.*4'/ '^X.*8' can also get correct results.
So, why it returns wrong answer?

1 commentaire

Stephen23
Stephen23 le 10 Nov 2022
Modifié(e) : Stephen23 le 10 Nov 2022
Having lots of numbered variable names is usually a sign that something is going wrong:
The MATLAB documentation states "Avoid functions that query the state of MATLAB such as inputname, which, whos, exist(var), and dbstack. Run-time introspection is computationally expensive."
The most important question is: how did you get all of those variables into the workspace? There is probably a more robust and more efficient approach to processing this data.

Connectez-vous pour commenter.

Réponses (1)

Askic V
Askic V le 8 Nov 2022
Modifié(e) : Askic V le 8 Nov 2022
Because you have a match, for example, for the first element:
X2300IF_S1
Did you perhaps want:
'^X.*2$'
so that 2 must be at the end?

2 commentaires

Wei Sue
Wei Sue le 8 Nov 2022
Thank you for your answer!
I didn't realize that I forgot the `$` in the expression.
Thanks for your time again.
Askic V
Askic V le 8 Nov 2022
If you are satisfied with the answer, please accept the reply as an answer to your question. Thank you.

Connectez-vous pour commenter.

Catégories

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

Produits

Version

R2021a

Tags

Question posée :

le 8 Nov 2022

Modifié(e) :

le 10 Nov 2022

Community Treasure Hunt

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

Start Hunting!

Translated by