tildes regular quitar poner muestra expresion acentos acento php regex pcre

regular - quitar acentos php



Operador de tilde en expresiones regulares (2)

Quiero saber cuál es el significado del operador de tilde en expresiones regulares.

Tengo esta declaración:

if (!preg_match(''~^/d{10}$~'', $_POST[''isbn''])) { $warnings[] = ''ISBN should be 10 digits''; }

Encontré este documento que explica lo que significa tilde: ~

Dijo que =~ es un operador perl que significa ejecutar esta variable contra esta expresión regular.

Pero, ¿por qué mi expresión regular contiene dos operadores de tilde?


En este caso, no significa nada. Es simplemente delimitar el inicio y el final de su patrón. En PCRE (Expresiones regulares compatibles con Perl), que es lo que estás usando con preg_ * en PHP, el patrón se ingresa junto a las opciones de expresión, de esta manera:

preg_match("/pattern/opt", ...);

Sin embargo, el uso de "/" como delimitador en este caso es arbitrario, aunque la barra diagonal es popular, se puede reemplazar con cualquier cosa. En tu caso, es tilde.


En este caso, solo se está utilizando como un delimitador.

En general, en PHP, los primeros y últimos caracteres de una expresión regular son "delimitadores" para marcar la posición inicial y final de una parte coincidente (en caso de que desee agregar modificadores al final, como Ungreedy, etc.)

En general, PHP lo resuelve a partir del primer carácter de una cadena que se entiende como una expresión regular, haciendo coincidir su segunda aparición con el segundo delimitador. Esto es útil cuando tiene una aparición del delimitador normal en el texto (por ejemplo, apariciones de / en el texto); esto significa que no tiene que hacer cosas incómodas.

Coincidencia de " // " con el delimitador establecido en " / "

//////

Coincidencia con " // " con el delimitador de " # "

#//#