Is there a utility that will convert POSIX to PCRE for PHP?
pcre, php, posix, regex, utilities
Solution
preg_match("/^#[01-9A-F]{6}$/", $sColor)
In this case you only need to add the two delimiters.
In perl you can write something like
if ( s =~ /x.+y/ )
{ print "match"; }
As you can see the actual regular expression is encapsulated in //. If you want to set an option on the regular expression you put it after the second /, e.g. switching the expression to ungreedy by default /x.+y/U pcre now emulates this behaviour. Though you have to call a function you also have to provide the delimiters and set the options after the second delimiter. In perl the delimiter has to be /, with pcre you can chose more freely
preg_match("/^#[01-9A-F]{6}$/", $sColor)
preg_match("!^#[01-9A-F]{6}$!", $sColor)
preg_match("#^\#[01-9A-F]{6}$#", $sColor) // need to escape the # within the expression here
preg_match("^#[01-9A-F]{6}$", $sColor)
all the same to pcre, best to chose a character that doesn't appear within the expression.
Problem
Is there a utility that will convert POSIX to PCRE for PHP? I'm somewhat confused by the PHP manual on PCRE, and while I'll try to find more info on PCRE, I was wondering if anyone had designed such a utility. Or, if anyone would explain how to convert the following, that would also be fine: ``` ereg("^#[01-9A-F]{6}$", $sColor) ``` But please explain how it's done, not just tell me the conversion.