1.3 KiB
extremely brief regex overview
Regexes are powerful. Gitolite uses that power as much as it can. If you can't handle that power, hire someone who can and become a manager.
That said, here's a very quick overview of the highlights.
^
and $
are called "anchors". They anchor the match to the beginning and
end of the string respectively.
^foo matches any string starting with 'foo'
foo$ matches any string ending with 'foo'
^foo$ matches exact string 'foo'.
To be precise, the last one is "any string starting and ending with the same 'foo'". "foofoo" does not match.
[0-9]
is an example of a character class; it matches any single digit.
[a-z]
matches any lower case alpha, and [0-9a-f]
is the range of hex
characters. You should now guess what [a-zA-Z0-9_]
does.
.
(the period) is special -- it matches any character. If you want to match
an actual period, you need to say \.
.
*
, ?
, and +
are quantifiers. They apply to the previous token. a*
means "zero or more 'a' characters". Similarly a+
means "one or more", and
a?
means "zero or one".
As a result, .*
means "any number (including zero) of any character".
The previous token need not be a single character; you can use parens to make
it longer. (foo)+
matches one or more "foo", (like "foo", "foofoo",
"foofoofoo", etc.)