PHP / Regex: regex simple para bbcode [s] o [strike] no funciona
Para un analizador de bbcode tonto, quería agregar dos definiciones en una, mi definición original era esta para preg_replace:
'#\[s\](.*?)\[/s\]#si', '<strike>\\1</strike>'
Y esto funciona, deseé que el usuario pudiera usar cualquiera[s]
o[strike]
para iniciar el texto en ese formato, así que, naturalmente, agregué algo como esto pensando que funcionaría:
'#\[(s|strike)\](.*?)\[/(s|strike)\]#si', '<strike>\\1</strike>'
Desafortunadamente eso falla, en lugar de lo que cabría esperar, ambos[s]
y[strike]
(usado correctamente) hacer:s
ystrike
(mi descuento es correcto para mostrar su resultado real, muestra s o huelga independientemente de lo que haya dentro)
¿Por qué reemplaza el texto interno con el nombre de la etiqueta? ¿Es mi problema agregar paréntesis alrededor del s | strike? Probablemente estoy haciendo todo esto mal ...