The egrep expression below fails because : in a range [...] is not quoted:
echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint

Now, how to I fix that? Adding \'s does not work:
echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-\:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint

echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-\\:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint

echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-\\\:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint

echo "hello name=\"value\" world" | grep -b --strict -E
"((?:[[:alnum:]_-\\\\:]+=\"[^\"]*?\"))" | cat
grep: regular expression: invalid [...] range endpoint

Olga

P.S.: Glenn, thank you for grep --strict and sed --strict. I wish ksh
had an option to print such diagnostics for shell and extended regular
expressions.
-- 
      ,   _                                    _   ,
     { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
.----'-/`-/     [email protected]   \-`\-'----.
 `'-..-| /       http://twitter.com/fleyta     \ |-..-'`
      /\/\     Solaris/BSD//C/C++ programmer   /\/\
      `--`                                      `--`

_______________________________________________
ast-users mailing list
[email protected]
https://mailman.research.att.com/mailman/listinfo/ast-users

Reply via email to