C# Сохранение переменной с помощью \"" в базе данныхC#

Место общения программистов C#
Anonymous
C# Сохранение переменной с помощью \"" в базе данных

Сообщение Anonymous »

У меня есть шаблон регулярного выражения, хранящийся в базе данных SQLite, который я использую для поиска определенных строк (см. WhatItShouldLookLike ниже). Когда я извлекаю эту переменную из базы данных в свой код, она выглядит так (см. WhatRegExReads ниже). Раньше у меня была жестко закодирована строка с символом @, и все работало нормально, но, как правило, я не люблю жестко кодировать подобные вещи на случай, если они изменятся. Как мне это исправить? Есть ли способ буквально записать строку в том виде, в котором она поступает из базы данных?
Я думал о том, чтобы ввести ключевые слова для замены, когда она выходит из базы данных, но еще не пробовал. Как Char(34).
Вот моя проблема:
Regex находит то, что мне нужно, с помощью этого
введите здесь описание изображения
но после того, как оно удалено из базы данных, оно преобразуется в это, и регулярное выражение не находит то, что мне нужно, с этим
введите описание изображения здесь
оно в базе данных выглядит следующим образом:
введите здесь описание изображения
Код находится в нескольких различных функциях.
var whatItShouldLookLike = @"(?[0-9]{1,2}\"")";
var whatRegExReads = @"(?[0-9]{1,2}\\\"\")";

List lst = GetTblToDictionary("McRegEx");
Dictionary dict = lst.FirstOrDefault(d => d["PatternName"].Equals("LineNoCleanUp"));

//string regExPatt = @"(?[0-9]{1,2}\"")(?\-)(?\w{1,5})*(?\s{1})*(?\-)(?\w{1,3})(?\-[1-3])*(?\-)(?[A-Z]{0,4})(?[0-9]{1,4})(?\-)*(?[A-Z]{0,2})(?\-)*(?[A-Z]{0,3})(?\([W]\))*(?\-)*(?[0-9]{0,1})(?\-)*(? )*(?[0-9]{0,1})(?\/)*(?[0-9]{0,1})(?\"")*";
string regExPatt = dict["Pattern"];

public void GetTblToDictionary(string tblName)
{
try
{
string sql = "Select * from " + tblName;
List lst = new();
using (var con = new SqliteConnection(ConnString))
{
con.Open();

var command = con.CreateCommand();
command.CommandText = sql;

using (SqliteDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
try
{
Dictionary dict = new();
for (int i = 0; i < reader.FieldCount; i++)
{
//need to get literal here

Подробнее здесь: https://stackoverflow.com/questions/790 ... a-database

Вернуться в «C#»