Crear expresión regular

  • Autor Autor suizer
  • Fecha de inicio Fecha de inicio
S

suizer

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola muy buenas,

Quiero crear una expresion en php para la cadena [cspacer0].

Lo pongo en colores para que se vea mejor y ahora explico cada caracter.

- Los corchetes [] tienen que estar siempre.
- La c pueden ser "c, r, l ó *".
- El texto spacer siempre es fijo.
- El cero 0 puede ser cualquier número comprendido entre 0 y 1000.

He estado probando con lo de abajo pero con consigo hacerlo funcionar.

PHP:
^[[*rlc]spacer[0-9]]$

Muchas gracias y un saludo,
 
Prueba asi /^[rlc]spacer[0-9]/ y dime si te funciono :encouragement:
 
Última edición:
si no me equivoco deber ser así

\[(c|r|l)(spacer)[0-9]{1,3}\]

claro faltan algunos caracteres que no comprendí, es cuestión de agregarlos.

Saludos.
 
Los corchetes, al ser caracteres que se usan en expresiones regulares, los tienes que escapar. Intenta algo como:

PHP:
\[[clr]spacer[0-9]{1, 4}\]

Saludos.
 
Estoy probando con:

PHP:
$channel_name = $tse_Channel["channel_name"];
$findme = '/[(c|r|l|*)(spacer)[0-9]]/i';

if (preg_match($findme, $channel_name)) {
   echo "HAY COINCIDENCIA -> ";
} else {
   echo "NO HAY COINCIDENCIA -> ";
}

Pero si pongo pun string que sea [HOLA] me lo reconoce como que hay coincidencia.

Si pongo /\[(c|r|l|*)(spacer)[0-9]\]/i no me encuentra nada.
 
Estoy probando con:

PHP:
$channel_name = $tse_Channel["channel_name"];
$findme = '/[(c|r|l|*)(spacer)[0-9]]/i';

if (preg_match($findme, $channel_name)) {
   echo "HAY COINCIDENCIA -> ";
} else {
   echo "NO HAY COINCIDENCIA -> ";
}

Pero si pongo pun string que sea [HOLA] me lo reconoce como que hay coincidencia.

Si pongo /\[(c|r|l|*)(spacer)[0-9]\]/i no me encuentra nada.

Qué es $channel_name?

- - - Actualizado - - -
[MENTION=19536]suizer[/MENTION] esto debería funcionar:

PHP:
$findme = '/\[[crl\*]spacer([0-9]{1,4}+)\]/';
 
Para mí la expresión regular correcta es esta:

Insertar CODE, HTML o PHP:
/\[[crl\*]spacer[0-9]{1,4}\]/

El único problema que le encuentro a la expresión, es que el número final puede ir desde 1 a 9999, pero puedes hacer una captura y verificar que el número sea o esté por debajo de 1000.
 
Muchas gracias!!

Me ha funcionado con:

PHP:
/\[[crl\*]spacer[0-9]{1,4}\]/

Un saludoo!!
 
Atrás
Arriba