Stack Overflow en español Asked on December 23, 2021
Estoy intentado buscar variables php en una cadena de caracteres almacenada en una base de datos MySql.
Necesito hacer la búsqueda mediante regexp en la consulta MySql. Tengo la expresión regular (?<![wd])$ec_der(?![wd])
que me funciona en php pero no sé como hacer el equivalente para MySql.
Si busca en el texto ($x+(-$ec_izq - $ec_der)*$ec) * ($z+($des_tra - 5))
funciona y encuentra $ec_der
. Gracias.
Revisa los ejemplos de sintaxis REGEXP en https://dev.mysql.com/doc/refman/8.0/en/regexp.html#regexp-syntax
Para el caso puntual, puedes usar la siguiente (no es exactamente igual, pero aisla la variable $ec_der. Puedes revisar la sintaxis para agregar adicional lo que necesites
SELECT "($x+(-$ec_izq - $ec_der)*$ec) * ($z+($des_tra - 5))" REGEXP "[^A-Za-z0-9_]\$ec_der[^A-Za-z0-9_]"
[^A-Za-z0-9]
equivaldría a ![wd]. Existen tambien una alternativa con aliases que sería [^[:alnum:]]
.
EDIT
Para el caso de buscar la expresion incluso en el inicio o final del texto deberia ser
SELECT "$ec_der ($x+(-$ec_izq - $ec_de1r)*$ec) * ($z+($des_tra - 5))" REGEXP "[^A-Za-z0-9_]?\$ec_der[^A-Za-z0-9_]?"
Aqui agregando ?
en la expresion indica que el elemento es opcional.
Answered by F.Igor on December 23, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP