¿Cuál es la sintaxis correcta para preg_replace
solo en paréntesis en PHP?PHP: Preg reemplazar paréntesis?
$search = preg_replace('/\(\)/','',$search);
Gracias
¿Cuál es la sintaxis correcta para preg_replace
solo en paréntesis en PHP?PHP: Preg reemplazar paréntesis?
$search = preg_replace('/\(\)/','',$search);
Gracias
Suponiendo que desea eliminar tanto (
y )
del $search
cadena:
$search = preg_replace('/\(|\)/','',$search);
Creo que la forma más rápida de hacerlo es usando el strtr
función, como esto:
$search = strtr($search, array('(' => '', ')' => ''));
Esa es la sintaxis correcta, aunque preg_replace es para expresiones regulares, si solo quiere reemplazar ()
entonces str_replace es un par de veces más rápido.
Si desea reemplazar o (
)
donde quiera que estén, se puede usar
preg_replace("/\(|\)/", "", $str);
Sí, pero tendría que usar str_replace dos veces, ¿correcto, uno para cada uno de los paréntesis? – Norse
Cierto, pero apuesto a que 5 $ aún sería más rápido: P –
@Tony: la función 'strtr' puede hacer varios" str_replaces "a la vez. Lo uso en una clase básica de plantillas ... en lugar de loop + str_replace, solo una llamada strtr ... –
Te refieres a esto?
$search = preg_replace('/[()]/', '', $search);
Esto eliminará todos los paréntesis sin tener en cuenta el emparejamiento.
¿paréntesis insensible a mayúsculas y minúsculas? :) –
Por lo general, esto es solo el comienzo ... la fuerza del hábito. :) – Nilpo
Aquí están mis resultados de un pequeño ensayo de campo:
preg_replace("/\(|\)/", "", $str): 1.590735912323
preg_replace('/[\(\)]/', '', $str): 1.3762638568878
strtr($str, array('(' => '', ')' => '')): 0.84079194068909
str_replace("(", "", str_replace(")", "", $str)): 0.80222821235657
Los dos últimos son casi idénticos como se ha señalado J. Bruni.
Agregue esto al benchmark: 'preg_replace ('/ [\ (\)] /', '', $ str);' - y háganos saber los resultados. –
Entonces, un par de str_replaces es más rápido que un strtr simple ... si el conjunto se puede evitar a favor de un par de parámetros de cadena, quizás debería ser más rápido ... 'strtr ($ str, '()', '') '- pero este no es el comportamiento deseado ... además, teniendo varias sustituciones, ¡ciertamente strtr ganaría! :-) –
Sí, la gama parece más rápida. strstr y str_replace son casi lo mismo, no encuentro una diferencia notable en la prueba actual, suben o bajan cada vez ... strstr sería una solución más elegante. –
Ah, gracias. Lo tengo trabajando. – Norse
No necesita el envoltorio adicional '()' para exportar el patrón, que en este caso no es necesario. –
@Tony: de hecho! Los he eliminado. –