8

I'm trying to get to grips with regular expressions:

I have a database connection string and I'd like to use a regular expression to identify specific Keys and Values within it.

For example

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

I'd like something to return "database=bar;" using the 'database' key to identify it, ideally it would be case insensitive. I can do this using normal code, but I think that this is exactly the sort of thing for which regular expressions were designed.

0

1 Answer 1

10
database=([^;]*);

should do the trick. It matches the string database=, followed by any sequence of zero or more non-semicolons, followed by a semicolon. The sequence of non-semicolons is parenthesized, so you can later extract the text that matched this part of the regex.

How to specify case insensitivity, and how to extract the value of the parenthesized thing, depends on the language you're using.

Sign up to request clarification or add additional context in comments.

4 Comments

This is exactly what I was after and much more elegant that the code I'd originally written. Thank you Thomas.
It gives back database= , Can we ignore "database=" and only fetch the exact name of database
Yes. Like I said, it's language dependent.
You forgot about the initial catalog= alias. I suggest changing the first part to (database=|initial catalog=) instead so it works with both.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.