How can I convert ereg expressions to preg in PHP?
Delimiters can be pretty much anything that is not alpha-numeric, a backslash or a whitespace character. The most used are generally ~, / and #.
PROBLEM -
eregi('^hello world');
Addition of delimiters is the biggest change in syntax -
ereg('^hello', $str);
preg_match('/^hello/', $str);
preg_match('[^hello]', $str);
preg_match('(^hello)', $str);
preg_match('{^hello}', $str);
// etc
If your delimiter is found in the regular expression, you have to escape it:
ereg('^/hello', $str);
preg_match('/^\/hello/', $str);
You can easily escape all delimiters and reserved characters in a string by using preg_quote:
$expr = preg_quote('/hello', '/'); preg_match('/^'.$expr.'/', $str);
Also, PCRE supports
Modifiers for various things.
The most used is the case-insensitive modifier i
, the alternative to eregi:
eregi('^hello', 'HELLO');
preg_match('/^hello/i', 'HELLO');
However, in your simple example you would not use a regular expression:
stripos($str, 'hello world') === 0
0 comments:
Post a Comment