Scroll to navigation

STRMATCH(3) Library Functions Manual STRMATCH(3)

NAME

strmatch - match shell file patterns

SYNOPSIS

int strmatch(char* s, char* p)
char* submatch(char* s, char* p, int m)

DESCRIPTION

strmatch compares the string s with the shell pattern p and returns 1 for match and 0 otherwise. submatch does a leading substring match of the shell pattern p with the string s. If m is 0 then the match is minimal, otherwise a maximal match is done. A pointer to the first character after the matched substring is returned, 0 if there is no match.

Except for & and !, each shell pattern has an equivalent egrep(1) construct.

	sh pattern	egrep RE	description
	*		.*		0 or more chars
	?		.		any single char
	[.]		[.]		char class
	[!.]		[^.]		negated char class
	*(.)		(.)*		0 or more of
	+(.)		(.)+		1 or more of
	?(.)		(.)?		0 or 1 of
	(.)		(.)		1 of
	@(.)		(.)		1 of
	a|b		a|b		a or b
	a&b				a and b
	!(.)				none of
\ is used to escape *, ?, (, |, &, ), [, and \ outside of [...].

SEE ALSO

grep(1)

BUGS

An unbalanced ) terminates the top level pattern.
Nested & and ! constructs are non-intuitive and are computationally intensive.