Mysql
 sql >> Database >  >> RDS >> Mysql

#1139 - Ricevuto l'errore "operando operatore di ripetizione non valido" da regexp

Secondo il manuale MySQL

MySQL utilizza l'implementazione di espressioni regolari di Henry Spencer, che mira alla conformità con POSIX 1003.2

Regex POSIX non supporta l'utilizzo del punto interrogativo ? come un modificatore non avido (pigro) della stella e più quantificatori come PCRE (Perl Compatible Regular Expressions). Ciò significa che non puoi utilizzare +? e *?

Sembra che dovrai solo usare la versione greedy, che dovrebbe comunque funzionare. Per evitare la corrispondenza di elementi come <img style="/*some style*/" src="a.png"> <script src="www.example.com/js/abc.js"> , puoi usare una classe di caratteri negata:

'<img[^>]*src="http://www'

Nota:il " non deve essere eseguito l'escape e il .* all'inizio è implicito.