2010-03-30 5 views
6

Estoy tratando de llegar a enfrentarse con las expresiones regulares:El uso de expresiones regulares para identificar las partes de una cadena de conexión de base de datos

tengo una cadena de conexión de base de datos y me gustaría usar una expresión regular para identificar las teclas específicas y Valores dentro de ella.

Por ejemplo

server=foo;database=bar;uid=foo;pwd=bar 

Quisiera algo para volver "base de datos = bar;" usando la clave 'base de datos' para identificarlo, idealmente sería insensible a mayúsculas/minúsculas. Puedo hacer esto usando un código normal, pero creo que este es exactamente el tipo de cosas para las cuales se diseñaron las expresiones regulares.

Respuesta

7
database=([^;]*); 

deberían hacer el truco. Coincide con la cadena database=, seguida de cualquier secuencia de cero o más puntos y no segundos, seguidos de un punto y coma. La secuencia de no punto y coma está entre paréntesis, por lo que luego puede extraer el texto que coincide con esta parte de la expresión regular.

Cómo especificar la insensibilidad de mayúsculas y minúsculas, y cómo extraer el valor de las cosas entre paréntesis, depende del idioma que esté utilizando.

+0

Esto es exactamente lo que buscaba y mucho más elegante que el código que había escrito originalmente. Gracias Thomas. –

+0

Devuelve la base de datos =, ¿Podemos ignorar "base de datos =" y solo recuperar el nombre exacto de la base de datos – InTheWorldOfCodingApplications

+0

Sí. Como dije, depende del idioma. – Thomas

Cuestiones relacionadas