On Fri, 5 Apr 2002, Dr . Sharukh K . R . Pavri . wrote:

I think manish has already answered your questions correctly, I'll just 
add to that.

> I downloaded your lecture on regex from the ACM website. I have a query; I am
> a bit confused with the following lines from your examples.
> 
> [A-Z^] - match anything from A-Z or ^
> [-A-Z] - match anything from A-Z or-
> [+-*/] - match anything from + to * and /
> [-+*/] - match - + * /

square brackets mean match any one character within the square brackets.  
The ^ and - characters have special meaning inside square brackets.

If - is not the first or last character, then it defines a range.

ie, A-Z means from A to Z.  You can have multiple ranges and intermix 
ranges with other lists, so you can do this:

[0-9a-fA-F] to match a hex digit or even this:
[abc0-9defA-EF] - both match the same.

when - is not first or last, it matches a literal -.

^ when used as the first character in the class means invert the match.

therefore, [^A-Z] means any character not in A-Z.  Note, this is not the 
same as matching no character.  There must necessarily be a character to 
match, and that character must be anything other than A-Z.

the closing bracket also has special meaning for obvious reasons.  To 
include a closing square bracket, put it as the first character in your 
class:

[]A-Z]

opening square brackets don't have this problem.

For square bracket and -, put the - last
For inverted match on square bracket, there shouldn't be an issue, but I 
haven't tried it.

Also, keep in mind that different regex engines interpret things 
differently.

-- 
The primary function of the design engineer is to make things
difficult for the fabricator and impossible for the serviceman.

_______________________________________________
http://mm.ilug-bom.org.in/mailman/listinfo/linuxers

Reply via email to