hi
i know ([a-zA-Z]+) matches any characters lower or uppercase
But i would like to what do these below 2 signs means and what do they match ?
1) ([a-zA-Z_]+)
2) ([a-zA-Z_-]+)
vineet
| SitePoint Sponsor |



hi
i know ([a-zA-Z]+) matches any characters lower or uppercase
But i would like to what do these below 2 signs means and what do they match ?
1) ([a-zA-Z_]+)
2) ([a-zA-Z_-]+)
vineet


First one also matches underscores (the _ )
Second one also matches underscores (the _ ) and the hypen (the - )





All of them are optional.
The + simply means one of the characters in found between [] needs to be found for the expression to be true, but it will capture all matching characters until the end or a non-matching character is found.\
To put that into perspective, the following will be captured
_
a
A
z
Z
abc_
_abc
a_b_c
etc



thanks cp
for the clarification
vineet



hi cp
one more question :
whats the difference in (.*) and (.+)
vineet


If you want an AWESOME book for Regular Expressions, I recommend O'Reilly Regular Expression Pocket Reference


The first is for matching any character zero or more times, the latter is matching any character 1 or more times

Also, regex basics are quite nicely explained on http://www.regular-expressions.info/
A lot of stuff I know about regex I got from there.
Rémon - Hosting Advisor
Minimal Bookmarks Tree
My Google Chrome extension: browsing bookmarks made easy

cp,
You really should add that Apache advises that the metacharacter (within a character range definition), the "-", should be the first character within the range definition so it can be understood to be the character (rather than the metacharacter used to define a range of characters). Under common usage, however, Apache accepts the - as the last character in the range (as vineet has in his code snippet).
WARNING: The references to the regex book and article are fine but mod_rewrite only uses a rather small and very basic subset of regex BECAUSE the Apache variables are not multi-line, they are not formatted (italic, bold, etc) and they must fit the format of the variable as required by Apache. That makes learning the subset used by mod_rewrite a relatively trivial task.
As for the definitive book on regex, let me recommend what most consider the bible on this subject: Jeffrey Friedl's "Mastering Regular Expressions" which is published by O'Reilly.
Regards,
DK
David K. Lynn - Data Koncepts is a long-time WebHostingBuzz (US/UK)
Client and (unpaid) WHB Ambassador
Updated mod_rewrite Tutorial Article (setup, config, test & write
mod_rewrite regex w/sample code) and Code Generator


The reason I suggested the O'Reilly Regular Expression Pocket Reference is because it actually teaches you the regular expression syntax used by various languages (I think apache may be in there too, but I don't quite remember and my book is on my work desk). So you can see the C# implementation, versus PHP, Perl, Java, etc. It is very handy when you are trying to nail down a regular expression and can't quite remember some of the oddities a language may have implemented.
Even though this is in the URL Rewriting forum, I didn't want to assume it was meant for Apache, versus maybe .NET URL Rewrite, or just a regular expression to be used for some other purpose.![]()
Bookmarks