====== Exemples de regex en vrac ====== Quelques exemples d'expressions régulières utilisées en PHP : // 1- remove recursively the content of for (), [] and {} // 2- removes escaped ' and " // 3- removes content betweend '' and "" (no recursion needed) $embracerPattern = "/\[([^\[\]]++|(?R))*+\]|\(([^\(\)]++|(?R))*+\)|{([^{}]++|(?R))*+}/"; $escapedQuotePattern = "/\\\\'|\\\\\"/"; $quotedStringPattern = "/'([^']++)*+'|\"([^\"]++)*+\"/"; //replace escaped quotes with html entities $escapedQuotePattern = "/\\\\'/"; $call['code'] = preg_replace($escapedQuotePattern, '\&#apos;', $call['code']); $escapedQuotePattern = "/\\\\\"/"; $call['code'] = preg_replace($escapedQuotePattern, '\&#quot;', $call['code']); //replace commas between remaining (double) quotes with html entities $quotedStringPattern = "/'([^']++)*+'|\"([^\"]++)*+\"/"; $call['code'] = preg_replace_callback( $quotedStringPattern, function ($matches) { return str_replace(',',',',$matches[0]); }, $call['code'] ); //replace commas between parentheses, braces or brackets $embracerPattern = "/\[([^\[\]]++|(?R))*+\]|\(([^\(\)]++|(?R))*+\)|{([^{}]++|(?R))*+}/"; $call['code'] = preg_replace($embracerPattern, '', $call['code']); //get the list of given parameters $results = preg_split('/,/', $call['code']);