I'm trying to search in a list of strings those who match a pattern. But it seems that StringExpression
in functions such as Position
or Case
won't work as in StringCase
.
Cases[{"ABC", "DEF"}, StringExpression["DE", _]]
{}
StringCases["ABC DEF", StringExpression["DE", _]]
{DEF}
Why this happens?
Cases[{"ABC", "DEF"}, _String?(StringMatchQ[StringExpression["DE", _]])]
orCases[{"ABC", "DEF"}, _?(StringMatchQ[StringExpression["DE", _]])]
? $\endgroup$StringExpression
states:StringExpression objects can be used in many string manipulation functions, including StringReplace, StringCases, StringSplit, and StringMatchQ.
. If you want to use it in other functions, useStringMatchQ
withStringExpression
as @kglr commented. $\endgroup$