Quick Tip: “e” Modifier For Regular Expression

Quick Tip: "e" Modifier For Regular Expression
Quick Tip:

There’s a question about regular expression on WPQuestions yesterday that received some interesting solutions. The question is replace all semicolons between [[ and ]]. I myself found a solution uses “e” modifier which I think interesting.

My solution is:

$s = "In [[ find_date_for_quote(); find_date_for_quote(); ]] IBM was  struggling to avoid bankruptcy.";

$s = preg_replace('#[[.*?]]#e', "str_replace(';', '', '$0')", $s);

echo $s;

The interesting thing here is str_replace function is used inside preg_replace, and that helps remove all semicolons. We can do that because of “e” modifier (at the end of pattern). It allows us to use any PHP code in the replacement.

Here is another example modified from PHP Manual which will turn all HTML tags in a string into lowercase:

preg_replace("/(</?)(w+)([^>]*>)/e", "'\1'.strtolower('\2').'\3'", $html_body);


Subscribe to our newsletter to receive news and tutorials about WordPress and web development.

Meta Box - Create advanced WordPress custom fields and custom meta boxes with ease Download Now