fork download
  1. <?php
  2.  
  3. //¿Cómo omitir en expresiones regulares un caracter que está en medio de otros dos?
  4. // https://es.stackoverflow.com/q/68111/127
  5.  
  6. $regex = '/(exp)|x/';
  7.  
  8. $x = 3;
  9. $cadena = 'exp(x,2) - ext(axp * exp)';
  10.  
  11. $reemplazo = function ($matches) use ($x) {
  12. if (isset($matches[1])) //capturó en grupo 1, entonces, devolver el mismo valor (no reemplazar)
  13. return $matches[1];
  14. return $x; //reemplazar por el valor que se quiera
  15. };
  16.  
  17. $resultado = preg_replace_callback($regex, $reemplazo, $cadena);
  18.  
  19. echo 'Resultado: ' . $resultado;
Success #stdin #stdout 0s 82944KB
stdin
Standard input is empty
stdout
Resultado: exp(3,2) - e3t(a3p * exp)