Re:Learn Regex the Easy Way
by sglane on Thursday August 10, 2017 @09:27AM
(#14979389)
There are three types of regex as far as I know: basic (aka GNU), extended and PERL. Grep uses GNU as the name implies.
egrep or grep -E uses extended. PERL is used elsewhere like JavaScript. Typically you'll see pcre which is the library for Perl Compatible Regular Expressions.
[ Parent
| on HN ]
The name "grep" is unrelated to GNU. According to The Jargon File, the etymology is:
from the qed/ed editor idiom g/re/p, where re stands for a regular expression, to Globally search for the Regular Expression and Print the lines containing matches to it
In fact, grep predates the GNU project by almost a decade.
Also, it's the first time I hear about "GNU" regexps.
Thanks, just learned something new. grep predates GNU by about a decade it seems.
a more accurate term would be "BRE with GNU extensions", e.g. \(\)
\(\) are part of BRE syntax. They are not GNU extensions.
Source: http://pubs.opengroup.org/onlinepubs/7908799/xbd/re.html#tag...
er, I meant \{\}.
\{n\}, \{n,\} and \{n,m\} are all in POSIX.
\{,m\} is a (pretty obscure) GNU extensions.
hm, I could've sworn it wasn't. http://www.regular-expressions.info/gnu.html says that \?, \+, and \| are GNU extensions though.
There are many differencese between "compatible" regular expressions, for (many) examples read the end of section "Important Notes About Lookbehind" on [1] or compare 24 dialects on [2] for example.
[1] http://www.regular-expressions.info/lookaround.html [2] http://www.regular-expressions.info/refadv.html
Erlang requires doubling up on escape backslashes, which generally causes me grief even after I flail about and finally remember it. Subtleties abound.
Another strange one is the (old) Visual Studio syntax with its :i (actually often quite helpful) and $1 instead of \1 (even in the new syntax).
https://msdn.microsoft.com/en-us/library/2k3te2cs(v=vs.110)....