2011-07-16 9 views
5

ejemplos:cómo regexar cadena de coincidencia escapada con estilo sql?

"""Romeo and Juliet""" 
'another string that is quoted with '' single quotes' 

El problema es que la cadena puede tener caracteres utilizados para db escapar incluso en su comienzo y al final, por lo que debe buscar expresiones regulares Si car dada se utiliza en la secuencia de longitud impar que es 1,3 , 5 ... al final de la cadena coincidente

+0

Por lo que la base de datos? SQL Server no admite expresiones regulares sin CLR (2005+), el soporte de Oracle comienza en 10g ... –

Respuesta

7

Pruebe esta expresión regular: '(?:[^']|'')*' para comillas simples. Lo mismo para las comillas dobles, es decir, expresiones regulares completo:

'(?:[^']|'')*'|"(?:[^"]|"")*" 

En cadena hello 'my ''beautiful''' 'world'! """Romeo and Juliet""" se encontrarán:

  1. 'my ''beautiful'''
  2. 'world'
  3. """Romeo and Juliet"""
-1

Donde su cadena incluye (o podría incluir) caracteres que causan problemas en su sql, debe siempre escapar.

Si está usando PHP con una base de datos MySQL, utilice mysql_real_escape_string($text); (docs)

Para otras bases de datos y lenguajes, usted tiene que comprobar para sus fines específicos, pero no es probable que sea un método existente.

+1

No quiero escapar de estas cadenas, ya he escapado de ellas. Quiero pescar estas cadenas escapadas del comando sql usando regex. – rsk82

Cuestiones relacionadas