Поиск строк соединения в коде программно - PullRequest
3 голосов
/ 23 июня 2009

Похоже, довольно простая проблема. Я хочу просмотреть около 6 ГБ контента и классический код asp и найти все, что похоже на строку подключения. Проблема в том, что строки подключения отформатированы дюжиной различными способами.

Я думал об использовании регулярных выражений для поиска определенных свойств, таких как "catalog =" или "password =" и т. Д.

Ответы [ 4 ]

3 голосов
/ 23 июня 2009

Не можете ли вы использовать это регулярное выражение?

@"^([^=;]+=[^=;]*)(;[^=;]+=[^=;]*)*;?$"

http://social.msdn.microsoft.com/Forums/en-US/regexp/thread/48bf2a4f-7312-4a32-b874-b77a27f7c5d0

1 голос
/ 23 июня 2009

Я чувствую вашу боль - почему люди делают это ??

regex / grep-подобные инструменты - путь. Размещение множества способов их форматирования не будет веселым.

0 голосов
/ 23 июня 2009

эта строка подключения может быть построена как строка:

x = "Provider=xyz;Initial Catalog=bdf;Database=pdq;"

куча продолжающихся строк:

x = "Provider=xyz;" & _
    "Initial Catalog=bdf;" & _
    "Database=pdq;"

куча строк:

x = "Provider=xyz;"
x = x & "Initial Catalog=bdf;"
x = x & "Database=pdq;"

или в dotnet объект ConnectionBuilder

SqlConnectionStringBuilder x = newSqlConnectionStringBuilder();
x.Add("Data Source", "pdq");
x.Add("Initial Catalog", "xyz");

Так не лучше ли определить все места, где используются строки подключения, и работать в обратном направлении?

"SQLConnection | odbcconnect | OleDbConnection | ConnectionString"

0 голосов
/ 23 июня 2009

Я бы взял пример файла с произвольным текстом в нем, а также по одной строке подключения в каждом из ваших возможных форматов. Затем напишите (одно или несколько) регулярных выражений, которые соответствуют каждой строке подключения в вашем тестовом файле. Затем запустите его на 6 ГБ данных и надейтесь на лучшее.

...