Files
2026-09-15 15:24:03 -04:00

42 lines
1.1 KiB
Matlab

function tf = matches (str, pat, varargin)
%MATCHES True where text equals a pattern exactly (MATLAB R2019b+).
%
% An owuitools compatibility shim; see contains.m for the policy.
% Unlike `contains` this is whole-string equality, which is the point
% of it - the two are easy to confuse and MATLAB keeps them apart.
if (nargin < 2)
error ('matches: not enough input arguments');
end
ignore_case = false;
if (numel (varargin) == 2 && ischar (varargin{1}) ...
&& strcmpi (varargin{1}, 'IgnoreCase'))
ignore_case = logical (varargin{2});
elseif (~isempty (varargin))
error ('matches: the only supported option is ''IgnoreCase''');
end
strs = owuitools_text_cell (str, 'matches', 'str');
pats = owuitools_text_cell (pat, 'matches', 'pat');
tf = false (size (strs));
for i = 1:numel (strs)
for j = 1:numel (pats)
if (ignore_case)
hit = strcmpi (strs{i}, pats{j});
else
hit = strcmp (strs{i}, pats{j});
end
if (hit)
tf(i) = true;
break;
end
end
end
if (ischar (str))
tf = tf(1);
end
end